interface A<T> {
interface B {
// Results in non-static type variable T cannot
// be referenced from a static context
T foo();
}
}
とにかくこれの周りはありますか?AB から参照されたときに T が静的と見なされるのはなぜですか?
インターフェイスのすべてのメンバー フィールドは、デフォルトpublic
で 、static
およびfinal
です。
内部インターフェースがデフォルトなので、静的フィールドやメソッドからstatic
参照することはできません。T
実際にはクラスのインスタンスに関連付けられているためT
、クラスに関連付けられている静的フィールドまたはメソッドに関連付けられている場合、意味がありません
このようなものはどうですか。
public interface A<T> {
interface B<T> extends A<T>{
T foo();
}
}