Übung 10.1 - // TODO: Make sure that a factory is defined.

L4_
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 104
Registriert: 24. Apr 2012 15:44

Übung 10.1 - // TODO: Make sure that a factory is defined.

Beitrag von L4_ »

Hallo,

wie ist der Punkt "// TODO: Make sure that a factory is defined." gemeint?

Sollen wir prüfen, ob typeBox.getSelectedItem() ein Objekt liefert, das auch eine Instanz einer konkreten Factory ist?
Wäre nämlich aus meiner Sicht unnötig, da ich die JComboBox auch generisch deklarieren kann und ich somit immer mit den richtigen factories arbeite.

Oder ist hier gemeint, dass die typebox auf Anzahl == 0 geprüft werden soll?

Danke im Voraus!

VG

Hentschel
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 1. Okt 2012 16:15

Re: Übung 10.1 - // TODO: Make sure that a factory is define

Beitrag von Hentschel »

Hi,

ab Java 1.7 kann zwar der Typ der Elemente in einer JComboBox angegeben werden, jedoch liefert getSelectedItem() leider nach wie vor ein Objekt und nicht eine Instanz des definierten Typs zurück.
Ebenfalls gibt es den Fall, das kein Element in der Benutzeroberfläche ausgewählt ist und getSelectedItem() somit null zurück gibt.

Die Methode soll so implementiert werden, dass keine unerwünschten Exceptions wie z.B. NullPointerException oder ClassCastException geworfen werden.
Im Stiel der bisherigen Implementierung ist das Werfen von IllegalStateException mit einer sinnvollen Fehlerbeschreibung natürlich gewünscht.

Mfg

Martin

L4_
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 104
Registriert: 24. Apr 2012 15:44

Re: Übung 10.1 - // TODO: Make sure that a factory is define

Beitrag von L4_ »

Hentschel hat geschrieben: ..., jedoch liefert getSelectedItem() leider nach wie vor ein Objekt und nicht eine Instanz des definierten Typs zurück.
Das ist mir bewusst, dass ich hierzu nur noch casten muss - aber bis auf den Fall mit "null" muss ich nicht mehr mittels "instance of" prüfen (was man sonst gewöhnlicherweise vorher macht), da das bereits durch Generizität vorgebeugt wird, oder?
Hentschel hat geschrieben:Ebenfalls gibt es den Fall, das kein Element in der Benutzeroberfläche ausgewählt ist und getSelectedItem() somit null zurück gibt.
D.h. die ComboBox soll auch ein Item beinhalten, dass keinen Wert/Typ enthält?
Macht ja durchaus sinn, jedoch wurde das nicht explizit als Aufgabe miterwähnt ;)
Dann würde die IllegalStateExeption auch Anwendung finden.

Hentschel
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 1. Okt 2012 16:15

Re: Übung 10.1 - // TODO: Make sure that a factory is define

Beitrag von Hentschel »

Hi,

hier würde ich schon mit instanceof prüfen, denn getSelecvteditem() gibt ein Objekt und nicht ein Objekt des definierten generischen Typs zurück.
Im allgemeine, z.B. bei einer List<String> darf der Entwickler davon ausgehen, dass ein Element, z.B. get(0) auch vom Typ String ist, denn die Methode liefert ein Objekt vom generischen Typ (String) zurück.

Ich persönlich würde beide Factories der ComboBox hinzufügen und nichts zusätzliches.

Mfg

Martin

Antworten

Zurück zu „Archiv“