ArrayList<Class<?>>
與ArrayList<Object>
相同但不能轉換的情況怎麼可能?相同的擦除,但不是相同的類型。
我的代碼當前在兩個eclipse錯誤之間切換。
GenericExclusiveSelectionPanel transport =
new GenericExclusiveSelectionPanel(StringConstants.TRANSPORT,
(ArrayList<Object>)TransportManager.getInstance().getTransportTypes());
表示:
Cannot cast from ArrayList<Class<Transportable>> to ArrayList<Object>
如果我然而除去演員和創建一個構造函數:
GenericExclusiveSelectionPanel(String, ArrayList<Class<Transportable>>)
我得到的日食錯誤:
Erasure of method GenericExclusiveSelectionPanel(String,
ArrayList<Class<Transportable>>) is the same as another method in type
GenericExclusiveSelectionPanel
它然後突出構造函數(下)作爲衝突的構造函數。
GenericExclusiveSelectionPanel(String title, ArrayList<Object> arrayList)
爲什麼你會期望一種類型可以被轉換爲另一種類型,只是因爲它們具有相同的擦除? – user2357112
@LawrenceColes請閱讀[我應該怎麼做當有人回答我的問題](http://stackoverflow.com/help/someone-answers)。是的,很好的問題。從我+1。請看看我的答案,並讓我知道你是否需要任何澄清 – CKing