interface A<T> {
interface B {
// Results in non-static type variable T cannot
// be referenced from a static context
T foo();
}
}
无论如何围绕这个?从A.B?
引用时,为什么T被视为静态答案 0 :(得分:6)
界面的所有成员字段默认为public
,static
和final
。
由于内部接口默认为static
,因此您无法从静态字段或方法引用T
。
因为T
实际上与一个类的实例相关联,如果它与一个与类关联的静态字段或方法相关联,那么它就没有任何意义
答案 1 :(得分:3)
这样的事情怎么样。
public interface A<T> {
interface B<T> extends A<T>{
T foo();
}
}
答案 2 :(得分:0)
您的内部接口不知道T是什么。试试这个。
interface A<T> {
interface B<T> {
T foo();
}
}