Hallo,
ich möchte eine Liste von verschiedenartigen Subjects halten.
Beim Zugriff über getElement(index) weiß ich dann, welche Art Subject ich aus der Liste hole (nämlich T), und caste daher dort von Subject<?> nach Subject<T>. Wie kann ich diesen Cast prüfen bzw. die Compiler-Meldung loswerden?
ich möchte eine Liste von verschiedenartigen Subjects halten.
Beim Zugriff über getElement(index) weiß ich dann, welche Art Subject ich aus der Liste hole (nämlich T), und caste daher dort von Subject<?> nach Subject<T>. Wie kann ich diesen Cast prüfen bzw. die Compiler-Meldung loswerden?
Code:
class GenericsTest {
List<Subject<?>> list;
<T> Subject<T> getElement(int index) {
Subject<?> element = list.get(index);
return (Subject<T>) element;
}
class Subject<T> {
void doSomething (T arg) {
// ...
}
}
}
Type safety: Unchecked cast from Transcoder<capture#10-of ?> to Transcoder<T>