Language Einsteiger

Der Diamant-Operator funktioniert jetzt auch mit anonymen Klassen.

✕ Java 7/8
Map<String, List<String>> map =
    new HashMap<String, List<String>>();
// anonymous class: no diamond
Predicate<String> p =
    new Predicate<String>() {
        public boolean test(String s) {..}
    };
✓ Java 9+
Map<String, List<String>> map =
    new HashMap<>();
// Java 9: diamond with anonymous classes
Predicate<String> p =
    new Predicate<>() {
        public boolean test(String s) {..}
    };
Problem mit diesem Code entdeckt? Sag uns Bescheid.
📏

Konsistente Regeln

Der Diamant funktioniert überall – bei Konstruktoren und anonymen Klassen gleichermaßen.

🧹

Weniger Redundanz

Typargumente werden einmal links angegeben und nie wiederholt.

🔧

DRY-Prinzip

Der Compiler kennt den Typ bereits – warum ihn zweimal schreiben?

Alter Ansatz
Typargumente wiederholen
Moderner Ansatz
Diamant <>
Seit JDK
9
Schwierigkeitsgrad
Einsteiger
Diamant-Operator mit anonymen Klassen
Verfügbar

Diamant mit anonymen Klassen seit JDK 9 (Sept. 2017).

Java 7 führte <> ein, aber es funktionierte nicht mit anonymen inneren Klassen. Java 9 hat dies behoben, sodass Typargumente auf der rechten Seite nie wiederholt werden müssen.

Teilen 𝕏 🦋 in