Typinferenz mit var
var für lokale Variablen-Typinferenz verwenden – weniger Rauschen, gleiche Sicherheit.
Code-Vergleich
✕ Java 8
Map<String, List<Integer>> map =
new HashMap<String, List<Integer>>();
for (Map.Entry<String, List<Integer>> e
: map.entrySet()) {
// verbose type noise
}
✓ Java 10+
var map = new HashMap<String, List<Integer>>();
for (var entry : map.entrySet()) {
// clean and readable
}
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
Weniger Boilerplate
Komplexe generische Typen müssen nicht auf beiden Seiten der Zuweisung wiederholt werden.
Bessere Lesbarkeit
Fokus auf Variablennamen und Werte, nicht auf Typdeklarationen.
Noch typsicher
Der Compiler leitet den genauen Typ ab und erzwingt ihn zur Compile-Zeit.
Alter Ansatz
Explizite Typen
Moderner Ansatz
var-Schlüsselwort
Seit JDK
10
Schwierigkeitsgrad
Einsteiger
JDK-Unterstützung
Typinferenz mit var
Verfügbar
Seit JDK 10 allgemein verfügbar (März 2018)
Wie es funktioniert
Seit Java 10 leitet der Compiler lokale Variablentypen aus der rechten Seite ab. Dies reduziert visuelles Rauschen ohne Einbußen bei der Typsicherheit. var empfiehlt sich, wenn der Typ aus dem Kontext offensichtlich ist.
Zugehörige Dokumentation