Hallo,
ich befasse mich gerade ausführlicher mit Generics und kann folgendes einfach nicht verstehen:
Es gibt folgende Klasse:
und nehmen wir weiterhin an die Klasse hat noch Methoden usw. die mit dem Typ T arbeiten. Die intList und ihre Methode getIntList() haben also gar nichst mit dem Parameter T zu tun (sowie getSomeList() ).
Wenn ich nun StrangeClass also RawType instanziere versteh ich aber was nicht:
Das funktioniert ohne Probleme! Wenn ich StrangeClass mit z.B. als StrangClass<String> instanziere geht das (wie man es erwarten würde) nicht mehr.
Kann mir das bitte jemand erklären!? Danke!
ich befasse mich gerade ausführlicher mit Generics und kann folgendes einfach nicht verstehen:
Es gibt folgende Klasse:
Code:
public class StrangeClass<T> {
private List<Integer> intList = new ArrayList<Integer>();
public StrangeClass() {
intList.add(8);
intList.add(7);
}
public List<Integer> getIntList(){
return intList;
}
public List<?> getSomeList(){
return intList;
}
}
und nehmen wir weiterhin an die Klasse hat noch Methoden usw. die mit dem Typ T arbeiten. Die intList und ihre Methode getIntList() haben also gar nichst mit dem Parameter T zu tun (sowie getSomeList() ).
Wenn ich nun StrangeClass also RawType instanziere versteh ich aber was nicht:
Code:
StrangeClass strange = new StrangeClass();
strange.getIntList().add("A String??");
strange.getSomeList().add("This is not null!");
Kann mir das bitte jemand erklären!? Danke!