|
|
? |
Welche Probleme treten bei der Kombination von Generics und Vererbung auf?
|
Beispiel |
List<String> ls = new ArrayList<String>();
List<Object> lo = ls;
|
| |
? |
Beispiel korrekt, übersetzbar, ausführbar?
|
Problem
|
lo.add(new Integer(42));
String s = ls.get(0);
|
| |
|
List<String> ist kein Subtyp von List<Object>
|
Regel |
Sei Y ein Subtyp von X.
|
|
Dann folgt daraus NICHT
|
|
G<Y> ist Subtyp von G<X>
|
|
Diese Problem tauchte auch bei Feldern auf.
Dort war die Zuweisungskompatibilität gegeben.
|
|
Folge: ArrayStoreException
|
|
Keine Lösung: ContainerStoreException
|