Language Początkujący

Operator diamentowy działa teraz również z klasami anonimowymi.

✕ 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) {..}
    };
Widzisz problem z tym kodem? Daj nam znać.
📏

Spójne zasady

Operator diamentowy działa wszędzie — zarówno w konstruktorach, jak i w klasach anonimowych.

🧹

Mniej redundancji

Argumenty typów podaje się raz po lewej stronie, nigdy ich nie powtarzając.

🔧

Zasada DRY

Kompilator już zna typ — po co pisać go dwa razy?

Stare podejście
Powtarzanie argumentów typów
Nowoczesne podejście
Operator diamentowy <>
Od JDK
9
Poziom trudności
Początkujący
Operator diamentowy z klasami anonimowymi
Dostępne

Operator diamentowy z klasami anonimowymi od JDK 9 (wrzesień 2017)

Java 7 wprowadziła <>, ale nie działało to z anonimowymi klasami wewnętrznymi. Java 9 naprawiła to, więc nigdy nie trzeba już powtarzać argumentów typów po prawej stronie.