2

Java可以嵌套泛型吗?以下在 Eclipse 中给了我一个错误:

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

错误是:

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

4

5 回答 5

22

你忘记了这个词new

于 2009-11-04T03:18:55.853 回答
7

那应该是:

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

甚至更好:

List<List<Integer>> numListList = new ArrayList<List<Integer>>();
于 2009-11-04T03:19:57.793 回答
1

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

于 2009-11-04T03:56:24.880 回答
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/

于 2009-11-04T04:16:58.997 回答
1

您忘记了以下代码中的“新”关键字:

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

您还可以将 Maps 与 Lists 一起用于嵌套泛型,如Java 5 (J2SE 5.0/JDK 1.5) New Features with Examples中所示

于 2013-04-07T12:48:41.543 回答