2013-04-25 101 views
1
private static <T> List<T> createListOfType(Class<T> type){ 
    return new ArrayList<T>();   
} 

我明白它試圖這樣做,但爲什麼事先如何閱讀此標題?

+3

注意'type'參數是沒有意義的,可以拆卸。 – 2013-04-25 00:23:04

+0

@PaulBellora哪個'type'參數可以被刪除?第一個''是必需的,不是嗎? – 2013-04-25 00:27:09

+0

@MisrableVariable我的意思是參數'類型',而不是類型參數:) – 2013-04-25 00:28:10

回答

9

第一<T>不只是簡單地List<T>

感謝聲明一個泛型類型參數我不明白,這部分<T> List<T>

該方法爲T。下一部分,List<T>是返回類型。在沒有聲明<T>的情況下,符號T將無法​​解析。

+0

+1對於實際回答問題:) – 2013-04-25 00:24:15

0

簽名的List<T>部分指定方法的返回類型。它將返回List與提供的類的參數化類型。

所以,如果Class<String>作爲參數提供的方法將基本上做到以下幾點:

private static List<String> createListOfType(Class<T> type){ 
    return new ArrayList<String>();   
}