webentwicklung-frage-antwort-db.com.de

Liste ist ein Rohtyp. Verweise auf den generischen Typ Liste <E> sollten parametrisiert werden

Unten ist meine Syntax 

List synchronizedpubliesdList = Collections.synchronizedList(publiesdList);

Ich erhalte einen Syntaxfehler von: 

List is a raw type. References to generic type List<E> should be parameterized.

Bitte schlagen Sie die Lösung vor.

13
Sachin Singh

Ich glaube das

Liste ist ein Rohtyp. Verweise auf den generischen Typ List sollten parametrisiert werden

ist kein Fehler, sondern eine Warnung.

Generics zu verstehen ist ein Eckpfeiler, wenn Sie Java einsetzen wollen. Ich schlage daher vor, Java-Tutorialseiten dazu zu lesen:

Java Generics Tutorials

Wenn Sie also wissen, welche Art von Objekten in publiesdList enthalten ist, können Sie Folgendes tun:

List<YourType> synchronizedpubliesdList = Collections.synchronizedList(publiesdList);

Wenn sich in der Liste mehrere Objekttypen befinden, können Sie einen Platzhalter verwenden:

List<?> synchronizedpubliesdList = Collections.synchronizedList(publiesdList);

Oder wenn Sie die Warnung einfach loswerden möchten, können Sie sie wie folgt unterdrücken:

@SuppressWarnings("rawtypes")
List synchronizedpubliesdList = Collections.synchronizedList(publiesdList);

letzteres wird jedoch nicht empfohlen.

29
Adam Arold

Sie müssen ihm den richtigen generischen Typ geben, z.

List<String> publiesdList = ...
List<String> synchronizedpubliesdList = Collections.synchronizedList(publiesdList);
7
Peter Lawrey

Sie können "öffentliche Liste" folgendermaßen definieren:

List<String> publiesdList = new List<String>();

Die Warnung verschwindet.

0
Oleg Hmelnits

Ich hatte die gleichen Warnungen in Eclipse und klickte einfach auf das Warnzeichen und bekam die Option, ein Typargument zum Hash, zur Liste, zum Array oder zu Ihren eigenen hinzuzufügen. Große Diskussionsliste hier Was ist ein roher Typ und warum sollten wir ihn nicht verwenden?

0