我有以下的第一個通用類及其接口:泛型類實例化一個泛型類
public interface Generic1Interface<E extends Comparable> {
..
}
public class Generic1 <E extends Comparable> implements
Generic1Interface<E> {
.. //implementation of Doubly linked list using Node objects
}
而第二個通用類和接口:
public interface Generic2Interface<E extends Comparable> {
..
}
public class Generic2 <E extends Comparable> implements
Generic22Interface<E> {
Generic1Interface<E> list;
//so nothing here but a reference to an object of type Generic1Interface<E>
Generic2() {
list = new Generic1();
}
假設我們正在努力在第二個類中的一個方法上,我們嘗試實例化第二個類的新實例,並將其命名爲「result」,然後嘗試訪問其Generic2實例,它將給出錯誤:
public Generic2Interface<E> union (E a, E b) {
Generic2Interface<E> result = new Generic2();
**result.list** = ....;
result.list將給出錯誤:「列表無法解析或不是字段」。我認爲必須有一個解決方法來在泛型類中實例化泛型類。 謝謝。
編輯:我需要符合每個實現的類中的接口。所以你可以看到方法union必須返回Generic2Interface類型的對象,這就是爲什麼我這樣聲明結果的原因。
是不是投您嘗試訪問在類中定義的字段前GENERIC2必要嗎?截至目前,結果的類型爲Generic2Interface .. – Vasan
如果我正確讀取您的代碼,則嘗試訪問Generic2Interface類型的對象上的列表字段。該字段未在接口上定義,但在Generic2類中定義。 –
@RobObdeijn正確。我忘了提到我這樣做的原因。我必須符合接口,所以我需要處理Generic2類型的實例,但是在這個類的每個方法的末尾,我必須返回對象類型Generic2Interface –