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,staticfinal

由于默认情况下是内部接口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 回答
0

您的内部界面不知道 T 是什么。试试这个。

interface A<T> {

    interface B<T> {
       T foo(); 
    }

}
于 2020-02-05T18:41:05.783 回答