Javagenerics:无法从静态上下文引用非静态类型变量T.

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

无论如何围绕这个? 为什么从AB引用时T被视为静态?

接口的所有成员字段默认为publicstaticfinal

由于默认情况下内部接口是static的,因此不能从静态字段或方法引用T

因为T实际上与一个类的实例相关联,如果它与一个与类关联的静态字段或方法相关联,那么它就没有任何意义

这样的事情怎么样?

 public interface A { interface B extends A{ T foo(); } }