2016-06-14 4 views
-1

Ich habe diese Klasse (nennen Sie es child), die die JComboBox-Klasse aus der -Bibliothek in Java erweitert. Nun, wenn ich ein Objekt von child erstellen und versuchen, die Methode addItem(Object) darauf zu rufen, indem sie in einem String vorbei, erhalte ich die folgende Warnung:Wie kann man ordnungsgemäß auf generische Methoden von der Elternklasse über ein Kind zugreifen, das nicht generisch ist?

Type safety: The method addItem(Object) belongs to the raw type JComboBox. References to generic type JComboBox<E> should be parameterized. 

Was ist der richtige Weg, um dieses Verfahren zu berufen? Ich kann child mit dem generischen Typ von <String> nicht instanziieren, weil child nicht generisch ist; Ich sehe nicht, wie ich das sonst tun soll. Jede Hilfe wäre willkommen.

PS. Das Ändern des Inhalts von child ist keine Option.

+1

'Klasse MyClass erweitert JComboBox ' – resueman

+0

"Das Ändern des Inhalts von 'Kind' ist keine Option" – Bazinga

+2

Dann ignorieren Sie die Warnung und gehen Sie weiter. Wenn Sie "child" nicht ändern können und Instanzen von "child" verwenden müssen, können Sie nichts tun. – Laf

Antwort

0

Was Sie wollen, ist Ihr Kind Klasse ein Kind von JComboBox<String>, nicht nur JComboBox machen. Dies wird die kleine Warnung für das Auftauchen stoppen.

Beispiel:

public class Child extends JComboBox<String>{ 

} 

Wenn Sie dies tun, werden alle generischen Methoden, Felder und so weiter wird nun ein String und kein Object sein.

Edit:

Ich sehe, Sie gesagt, dass Sie nicht das Kind Klasse ändern kann. Das macht die Dinge ziemlich schwierig.

Es gibt nicht wirklich eine einfache Möglichkeit, dies zu tun, auch Workarounds werden letztlich immer noch diese Warnung angezeigt. Ihre eine Option (die ich sehen kann) ist die Verwendung der @SuppressWarnings("unchecked") Annotation über dem Code, der die Warnung erzeugt. Dadurch wird die Warnung nicht mehr angezeigt.

+1

Aus irgendeinem Grund gab das OP an, dass er die Kindklasse nicht ändern kann. – Laf

+0

@Laf Vielen Dank für das darauf hin - wird die Antwort bearbeiten, um das zu reflektieren. –