2014-01-16 27 views
-1

我有一個方法copyList(List<T> destinationList, List<T> sourceList)與T泛型類型。這意味着sys只接受destinationList & sourceList具有相同類型,如果他們不那麼方法將不允許。copyList(列表<T> destinationList,列表<T> sourceList),爲什麼Eclipse不能識別泛型T?

例如:copyList(List<String[]> destinationList, List<String[]> sourceListcopyList(List<String[][]> destinationList, List<String[][]> sourceList允許

copyList(List<String[][]> destinationList, List<String[]> sourceList將不允許因爲它們不具有相同的類型。

但是,我的日食有此錯誤「T不能被解析爲一個類型」

+0

這不就是'destinationList.addAll(sourceList)'已經做了什麼嗎? – zapl

+0

addAll(Collection)not addAll(List) – Tum

+0

yes但是'List'是一個'Collection',所以可以工作。 – zapl

回答

5

您必須聲明的類型參數無論是在方法級別(返回類型前),或在類級別(後班級名稱)。在這種情況下,現在看來,這是一個通用的方法,因此其聲明是這樣的:

public <T> void copyList(List<T> destinationList, List<T> sourceList) { } 

因此,<T>返回之前類型被稱爲類型參數的聲明。同樣,如果你不得不做出的一類通用的,你做這樣的:

// A generic class 
class MyList<T> { 

} 

進一步閱讀:

+0

好的,只是檢查沒有發現錯誤,thax你 – Tum

相關問題