2013-03-08 72 views
-1

在一个关于泛型的采访中,访问者询问一个问题,即有两个列表,一个列表是String类型的(即一个ArrayList是字符串类型的),现在我们添加一些字符串,现在创造这将是类型的您创建的第一个列表,现在是如下图所示的可能的解决方案的第二个数组列表..不同方法的泛型

List<String> firstList = new ArrayList<String>(); 

public <T> List<T> createSecondList(List<T> firstList) 
{ 
    return new ArrayList<T>(); 
} 

我的查询语句可以在我们以下方式也请告知表达这种。

List<String> firstList = new ArrayList<String>(); 
<T> List<T> createSecondList = new ArrayList(List<T> firstList); 
+0

你询问如何调用泛型方法或不然我们怎么表示呢? – 2013-03-08 11:20:23

+0

第一种方法就是这样做。你的第二个例子(如果编译的话)并不是非常有用:当你调用它时,你确实知道原始列表的类型,所以你不需要泛型。 – assylias 2013-03-08 11:20:32

回答

5

这条线:

<T> List<T> createSecondList = new ArrayList(List<T> firstList); 

是无效的Java代码,它的类型的方法声明和变量声明和实例化之间的一半..

创建第二个列表...

List<String> firstList = new ArrayList<String>(); 
List<String> secondList = createSecondList(firstList); 
+0

请指教或纠正一个。 – 2013-03-08 11:20:32

+0

您已在帖子开始处显示答案..! – cowls 2013-03-08 11:21:28

+0

@cowls“在帖子开头的答案”实际上是同一个问题的答案http://stackoverflow.com/questions/15289585/generics-with-context-to-wild-cards – Javier 2013-03-08 11:34:59

0

1>List<String> list1 = new ArrayList<String>(); //这是第一种类型的
2>List<List<String>> list2 = new ArrayList<List<String>>(); //这是第二类是包括第一列表类型