Rohe Collections zu generischen Typen
Rohe Collection-Typen und Downcasts durch generische Typsicherheit zur Kompilierzeit ersetzen.
Code-Vergleich
✕ Java 1.4
List names = new ArrayList();
names.add("Duke");
String name = (String) names.get(0);
✓ Java 5+
List<String> names = new ArrayList();
names.add("Duke");
String name = names.get(0);
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
Sicherheit zur Kompilierzeit
Ungültige Elementtypen schlagen bereits beim Kompilieren fehl, nicht erst zur Laufzeit.
Keine Downcasts
Werte behalten ihren deklarierten Elementtyp.
Selbsterklärende APIs
Collection-Deklarationen geben genau an, was sie enthalten.
Alter Ansatz
Rohe Collections
Moderner Ansatz
Generische Collections
Seit JDK
5
Schwierigkeitsgrad
Einsteiger
JDK-Unterstützung
Rohe Collections zu generischen Typen
Verfügbar
Generics sind seit JDK 5 (September 2004) verfügbar.
Wie es funktioniert
Rohe Collections akzeptieren beliebige Objekttypen und verschieben Typfehler bis zur Ausführung eines Casts. Generische Typargumente lassen den Compiler Schreib- und Lesezugriffe prüfen, entfernen Casts, verbessern die IDE-Unterstützung und machen API-Verträge explizit. Rohe Typen sollten normalerweise nur an sorgfältig isolierten Altsystem-Schnittstellen verbleiben.
Zugehörige Dokumentation
Beweis