18
interface A<T> {

    interface B {
       // Results in non-static type variable T cannot
       // be referenced from a static context
       T foo(); 
    }

}

とにかくこれの周りはありますか?AB から参照されたときに T が静的と見なされるのはなぜですか?

4

3 に答える 3

8

インターフェイスのすべてのメンバー フィールドは、デフォルトpublicで 、staticおよびfinalです。

内部インターフェースがデフォルトなので、静的フィールドやメソッドからstatic参照することはできません。T

実際にはクラスのインスタンスに関連付けられているためT、クラスに関連付けられている静的フィールドまたはメソッドに関連付けられている場合、意味がありません

于 2012-06-09T18:48:01.417 に答える
3

このようなものはどうですか。

public interface A<T> {

     interface B<T> extends A<T>{

       T foo(); 
    }

}
于 2012-06-09T18:57:31.530 に答える