我正在嘗試實現一個「兩級」鑄造的問題。派生泛型類型的java刪除
下面是簡單的代碼來顯示什麼,我試圖做的:
public class Array2D<T>
{
private T[][] _array;
....
public T get(int x , int y)
....
public void set(T o , int x , int y)
}
直到有沒有問題。
我想擴展這個類,如我可以封裝使用在吸氣SoftReferences和setter的:
public class Array2DSoftRefs<T> extends Array2D<SoftReference<T>>
{
public T get(int x , int y)
{
return super.get(x,y).get(); // get the array element, then the SoftReference contents
}
....
public void set(T o , int x , int y)
{
super.set(new SoftReference<T>(o) ,x,y); // generate the SoftReference on-the-fly
}
}
事實上,我拉開序幕,因爲編譯器/語法分析器跳過了泛型刪除,然後@Override
註釋不能幫助我(隊長顯而易見)。
我不知道如何從SoftReference<T>
模板返回T
類型。
我試着爲SoftReference<T>
放入兩個仿製藥T
和U
,但沒有成功。
術語_template_未在Java中使用。術語_generics_和_type parameters_用於替代。 – jahroy
什麼是確切的編譯器錯誤信息? – Bohemian
@jahroy感謝編輯和單詞,我仍然懷念我的C++背景。 – Benj