編輯:這是一個Eclipse問題(?)。 Eclipse顯示一個錯誤但編譯它,似乎與Java 8和Type Casting有關。從外部訪問列表,缺少泛型類型
我已經有一個List<E>
場的一類。如果我在課堂上訪問它,我會得到List<E>
。
但如果我從外部訪問的列表,我只得到List
沒有泛型類型。如果我訪問它的元素,我只得到一個Object
,而不是E
的,但在我的代碼,我需要明確的E
,所以我怎樣才能改變/修復,以便List不除去仿製藥,並沒有明確的鑄造返回?
用類列表:
public class ListClass {
private List<String> list;
public ListClass(){
list = new ArrayList<>();
}
public List<String> getList(){
return list;
}
}
方含類:
public class ContainingClass {
private ListClass lc;
public ContainingClass(){
lc = new ListClass();
}
public ListClass getListClass(){
return lc;
}
}
現在的問題:
ContainingClass cc = new ContainingClass();
String str = cc.getListClass().getList().get(0);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error: "Type mismatch: cannot convert from Object to String"
但是,爲什麼?
聽起來就像是吸你的字段是使用原始類型。 – Keppil 2014-10-08 21:07:30
@Keppil在問題中看到我的'#getHashMap()',它使用的是原始類型嗎? – criztovyl 2014-10-08 21:14:16
不,應該有效。你還可以分享你的通話代碼嗎? – Keppil 2014-10-08 21:16:19