Java:嵌套泛型?

时间:2009-11-04 03:17:52

标签: java eclipse nested-generics

Java可以嵌套泛型吗?以下是Eclipse中的一个错误:

ArrayList<ArrayList<Integer>> numSetSet = ArrayList<ArrayList<Integer>>();

错误是:

Syntax error on token "(", Expression expected after this token

5 个答案:

答案 0 :(得分:22)

您忘记了new这个词。

答案 1 :(得分:7)

应该是:

ArrayList<ArrayList<Integer>> numSetSet = new ArrayList<ArrayList<Integer>>();

甚至更好:

List<List<Integer>> numListList = new ArrayList<List<Integer>>();

答案 2 :(得分:1)

对于那些通过谷歌提出这个问题的人来说,Yes Generics可以嵌套。其他答案就是这样做的好例子。

答案 3 :(得分:1)

这里有一些关于Java模板编程的技巧略显棘手,我怀疑有多少人以前在Java中使用过它。
这是一种避免施放的方法。

public static <T> T doSomething(String... args) 

这是一种使用通配符限制参数类型的方法。

public void draw(List<? extends Shape> shape) {  
    // rest of the code is the same  
}  

您可以在SUN的网站上获得更多样本:
http://java.sun.com/developer/technicalArticles/J2SE/generics/

答案 4 :(得分:1)

您忘记了'new'关键字,如下面的代码所示:

        的ArrayList&LT; ArrayList的&LT;整数&GT;&GT; numSetSet = new ArrayList&lt; ArrayList&lt; Integer&gt;&gt;();

您还可以将地图与列表一起使用嵌套泛型,如Java 5 (J2SE 5.0/JDK 1.5) New Features with Examples

所示