Java7 und Diamond-Operator

Hach, da haben die sich ja was schönes einfallen lassen 🙂

Statt

ArrayList<MyClass> list = new ArrayList<MyClass>();

reicht jetzt ein

ArrayList<MyClass> list = new ArrayList<>();

Aaaaber … Da bin ich über eine Falle gestolpert bei der Verwendung mit generischen Funktionen …

private <T> List<T> toList(T t) {
    ArrayList<T> list = new ArrayList<>();
    list.add(t);
    return list;
}

funktioniert tatsächlich nicht mit dieser Fehlermeldung:

Type mismatch: cannot convert from ArrayList<?> to ArrayList<T>

Verzichtet man in diesem Fall auf den Diamond-Operator, dann klappt es wieder …

Merkwürdig irgendwie … !

 

 

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s