interface A<T> {
interface B {
// Results in non-static type variable T cannot
// be referenced from a static context
T foo();
}
}
反正有這個嗎?爲什麼從A.B引用時,T被看作是靜態的?Java泛型:非靜態類型變量T不能從靜態上下文中引用
interface A<T> {
interface B {
// Results in non-static type variable T cannot
// be referenced from a static context
T foo();
}
}
反正有這個嗎?爲什麼從A.B引用時,T被看作是靜態的?Java泛型:非靜態類型變量T不能從靜態上下文中引用
接口的所有成員字段默認爲public
,static
和final
。
由於默認情況下內部接口爲static
,因此您不能從靜態字段或方法引用T
。
因爲T
實際上是一個類的實例相關聯的,如果它有與類關聯那就沒有任何意義
謝謝,這回答了問題的第一部分。我如何讓內部接口中看到的類型T與包含接口的類型相同? – auser
我會刪除第一句,因爲它不必要和誤導 - 是的接口字段隱式地是「公共靜態final」,但是這與接口*方法*有關,隱式地是'public abstract'。內部接口本身是靜態的這一事實本身就是重要的。 –
井內界面與內田相同 –
靜態字段或方法有關如何這樣的事情。
public interface A<T> {
interface B<T> extends A<T>{
T foo();
}
}
@BheshGurung是 - 故意的。 – auser
相關:http://stackoverflow.com/a/74400/697449 –