Diese Warnung ist vorhanden, da Java zur Laufzeit keine Typinformationen in einem Objekt speichert, das Generika verwendet. Wenn object
es sich also tatsächlich um a handelt List<String>
, gibt es ClassCastException
zur Laufzeit keine, es sei denn, auf ein Element aus der Liste wird zugegriffen, das nicht mit dem in der Variablen definierten generischen Typ übereinstimmt.
Dies kann weitere Komplikationen verursachen, wenn Elemente mit diesen falschen generischen Typinformationen zur Liste hinzugefügt werden. Jeder Code, der noch einen Verweis auf die Liste enthält, aber die richtigen generischen Typinformationen enthält, hat jetzt eine inkonsistente Liste.
Versuchen Sie Folgendes, um die Warnung zu entfernen:
List<?> list = (List<?>) object;
Beachten Sie jedoch, dass Sie bestimmte Methoden wie add nicht verwenden können, da der Compiler nicht weiß, ob Sie versuchen, ein Objekt vom falschen Typ hinzuzufügen. Das Obige funktioniert in vielen Situationen, aber wenn Sie add oder eine ähnlich eingeschränkte Methode verwenden müssen, müssen Sie nur die gelbe Unterstreichung in Eclipse (oder eine SuppressWarning
Anmerkung) erleiden .
@SuppressWarning
, können Sie die Warnung in den Einstellungen ignorieren. Gehen Sie im Einstellungsfenster zu Java> Compiler> Fehler / Warnungen und ändern Sie im Abschnitt Generische Typen die Option Ungeprüfte generische Typoperation in Ignorieren