ジェネリック型はよりペダンティックです。
List
List
または任意のサブタイプを意味しますが、<List>
のみを意味しList
ます。サブタイプが必要な場合は、<? extends List>
私はあなたが使用できると思います
List<List<String>> myList = new ArrayList<List<String>>();
これを行うことができない理由は、参照への参照を使用することができ、注意が必要な余分なレベルの間接性があるためです。
// with one level of indirection its simple.
ArrayList alist = new ArrayList();
List list = aList; // all good
list = new LinkedList(); // alist is still good.
ジェネリックを使用すると、問題を引き起こす可能性のある 2 つのレベルの間接性を持つことができるため、これらの問題を回避するために、より知識を深めることができます。
// with two levels of indirection
List<ArrayList> alist = new ArrayList<ArrayList>();
List<List> list = (List) alist; // gives you a warning.
list.add(new LinkedList()); // adding a LinkedList into a list of ArrayList!!
System.out.println(alist.get(0)); // runtime error
版画
Exception in thread "main" java.lang.ClassCastException: java.util.LinkedList
cannot be cast to java.util.ArrayList