Ujiol: Verschachtelte Generics

Beitrag lesen

Hallo,

Ich möchte in Java eigentlich folgendes machen:

List<List<String>> myList = new Vector<Vector<String>>();

Da meckert aber der Compiler. Folgendes funktioniert:

List<Vector<String>> mylist = new Vector<Vector<String>>();

Jetzt frage ich mich, warum ersteres nicht geht. Wenn jetzt jemand anderes als ich das Objekt "mylist" sieht und sich fragt "hm, was kann ich damit machen?", dann kann es ihm doch egal sein, ob ich das mit Vector oder ArrayList oder sonstwie instanziiert habe oder etwa nicht? Er müsste doch trotzdem z.B. ein myList.add(new ArrayList<String>()) machen können, immerhin sollte es dem Compiler egal sein, solange es ein Objekt einer Klasse ist, die vom List Interface erbt.
Hab ich hier einen Denkfehler?