Hi!
Ich finde es etwas komisch wie Generics funktionieren. Wieso ist es notwendig, wenn man eine neue Instanz von zB ArrayList erzeugt, auch bei "new ArrayList<String>()" den Typenparameter anzugeben, würde es nicht ausreichen wenn man das nur bei der Referenz macht?
Bei allen anderen Operationen wird doch auch der Typ der Referenz verwendet, zB:
Bei diesem Code lässt mich der Compiler doch letztendlich wieder jedes Objekt einer beliebigen Klasse der ArrayList hinzufügen, obwohl ich sie bei der Erstellung mit <String> parameterisiert habe.
Also was hat das dann für einen Sinn gehabt?
fg, mouk
Ich finde es etwas komisch wie Generics funktionieren. Wieso ist es notwendig, wenn man eine neue Instanz von zB ArrayList erzeugt, auch bei "new ArrayList<String>()" den Typenparameter anzugeben, würde es nicht ausreichen wenn man das nur bei der Referenz macht?
Bei allen anderen Operationen wird doch auch der Typ der Referenz verwendet, zB:
Code:
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("Hallo");
ArrayList list2 = list;
list2.add(34.324);
ArrayList<Integer> list3 = list2;
list3.add(643);
}
}
Bei diesem Code lässt mich der Compiler doch letztendlich wieder jedes Objekt einer beliebigen Klasse der ArrayList hinzufügen, obwohl ich sie bei der Erstellung mit <String> parameterisiert habe.
Also was hat das dann für einen Sinn gehabt?
fg, mouk