Hallo!
Hoffentlich ist diese Frage genau hier "erlaubt".
Da es um Datenstrukturen geht, denke ich, ist es wohl korrekt.
Gegeben sind zwei Listen:
Kann mir jemand erklären, warum die Zuweisung in Zeile 4 in Ordnung ist?
Im konkreten Fall könnte da eine Typ-Zuweisung "<Integer> = <Number>" sein,
was, denke ich, nicht passt.
Kann man es so deuten, dass der Compiler großzügig bzw. wohlwollend entscheidet,
weil bei Zuweisung "<? super Integer> = <Number>" könnte auch
Typ-Zuweisung "<Number> = <Number>" sein oder auch
Typ-Zuweisung "<Object> = <Number>"
sein, was ja passt.
Viele Grüße
Steve222
Hoffentlich ist diese Frage genau hier "erlaubt".
Da es um Datenstrukturen geht, denke ich, ist es wohl korrekt.
Gegeben sind zwei Listen:
Java:
List<Number> list14 = null;
List<? super Integer> list15 = null;
//list14 = list15; // Compilerfehler incompatible types //Zeile 3
list15 = list14; // Zeile 4, OK
// <? super Integer> bedeutet: <Integer> und alle Super-Klassen von <Integer>
Kann mir jemand erklären, warum die Zuweisung in Zeile 4 in Ordnung ist?
Im konkreten Fall könnte da eine Typ-Zuweisung "<Integer> = <Number>" sein,
was, denke ich, nicht passt.
Kann man es so deuten, dass der Compiler großzügig bzw. wohlwollend entscheidet,
weil bei Zuweisung "<? super Integer> = <Number>" könnte auch
Typ-Zuweisung "<Number> = <Number>" sein oder auch
Typ-Zuweisung "<Object> = <Number>"
sein, was ja passt.
Viele Grüße
Steve222