2014-03-04 155 views
1

下面的代碼會產生這樣的警告:擺脫警告的產生由Collections.unmodifiableList()

警告:

Type safety: The expression of type List needs unchecked conversion to conform to List<TableModel> 

代碼:

List<TableModel> tableModels = new ArrayList<TableModel>(); 
List<TableModel> list = Collections.unmodifiableList(tableModels); 

的方法簽名是:

public static <T> List<T> unmodifiableList(List<? extends T> list) 

什麼是我錯過了?

+0

List 沒有用在你的代碼中,你可以發佈原文嗎?現在有警告,如果您使用它作爲您的代碼片段建議。檢查您嘗試鎖定的集合的聲明類型。 –

+0

在這種情況下不應該有任何警告。你確定它是'List list'而不是'List list'? – zapl

+0

對不起,''應該也是在警告中。 –

回答

3

您可能正在尋找:

List<TableModel> list = Collections.<TableModel>unmodifiableList(tableModels); 
+3

感謝您的提示。其實這是一個錯誤。導入的集合不是來自'java.util',而是來自其他包。 –

0

我遇到這個問題,編譯,我從同事那裏收到的代碼時。原來我使用的是Java 7而不是Java 8編譯器。切換到8解決了我。