Interface Interface und seine Implementierung

SafeDebagger

Mitglied
Ich soll einen generischen Datentyp Sammler (mit <T>) als Interface schreiben, der drei beliebige Objekte speichern lassen soll. Außerdem soll ich folgende Methoden darin einbauen:
• Methode fuegeHinzu zum Speichern eines Objekts an einer der drei Speicherstellen. Der erste Parameter soll die Speicherstellennummer (1,2 oder 3) als int-Wert angeben. Die Methode kann eine IllegalArgumentException werfen, wenn eine falsche Speicherstellennummer angegeben wird.
• Methode istLeer zum Prüfen, ob noch kein Objekt gespeichert wurde. Der Rückgabewert soll vom Typ boolean sein.

Dieses Interface soll ich dann in einer anderen Klasse implementieren, wobei die Art der Implementierung der 3 Speicherstellen frei von mir wählbar sein sollen...

Ich bin etwas ratlos, wie man überhaupt ein Interface in Kombination mit einem generischen Datentyp verknüpft. Und dann hab ich nivht verstanden inwiefern ich diese Exception im Interface darstellen kann und die Implementierungsaufgabr versteh ich gar nicht
 
Java:
interface Sammler<T> {
    void fuegeHinzu(int nr, T value) throws IllegalArgumentException;
    boolean istLeer();
}
Java:
class SammlerImpl<T> implements Sammler<T> {
    @Override
    public void fuegeHinzu(int nr, T value) throws IllegalArgumentException {
         // Implementierung
    }
    @Override
    public boolean istLeer() {
         // Implementierung
    }
}
 
[ANSCHLUSSFRAGE]

Vielen lieben Dank. Nur eine anschließende Frage: Die angegebene Exception ist ja eine RuntimeException. Benötigt man da trotzdem das throws oder hat das mit un-/geprüften Exceptions gar nichts zu tun?
 
Zuletzt bearbeitet:
Java:
interface Sammler<T> {
    void fuegeHinzu(int nr, T value) throws IllegalArgumentException;
    boolean istLeer();
}
Java:
class SammlerImpl<T> implements Sammler<T> {
    @Override
    public void fuegeHinzu(int nr, T value) throws IllegalArgumentException {
         // Implementierung
    }
    @Override
    public boolean istLeer() {
         // Implementierung
    }
}

Man muss ja um was zufügen zu können ein Feld erzeugen. Mach ich das im Interface oder in der implemntierenden Klasse?
Sieht das Feld so aus?
Java:
Object[ ] feld = new Object[3];
 

Neue Themen


Zurück
Oben