Der Diamant-Operator in Java 7 ermöglicht Code wie folgt:
List list = new LinkedList<>();
In Java 5/6 kann ich jedoch einfach schreiben:
List list = new LinkedList();
Mein Verständnis von Typenlöschung ist, dass diese genau gleich sind. (Die Generika werden sowieso zur Laufzeit entfernt).
Warum überhaupt den Diamanten verwenden? Welche neue Funktionalität / Typensicherheit ermöglicht er? Wenn er keine neue Funktionalität liefert, warum erwähnen sie es dann als Feature? Ist mein Verständnis dieses Konzepts fehlerhaft?
4 Stimmen
Beachten Sie, dass dies kein Problem darstellt, wenn Sie statische Fabrikmethoden verwenden, da Java Typenschlüsseleinschätzung bei Methodenaufrufen durchführt.
0 Stimmen
Wenn Sie die Warnung deaktivieren, ist sie tatsächlich nutzlos... :) wie für mich
4 Stimmen
Es wurde beantwortet, aber es befindet sich auch im Java-Tutorial (etwa in der Mitte der Seite): docs.oracle.com/javase/tutorial/java/generics/…
0 Stimmen
Schöner Artikel dazu auf dZone.
2 Stimmen
Meine Ansicht dazu ist, dass dies nur syntaktischer Zucker für List list = new LinkedList(); ist, also bleibt es generisch