2013-03-08 71 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>>(); //這是第二類是包括第一列表類型