标签: java static
我尝试编译以下代码:
public interface Foo<T> { public interface Bar { public void bar(T t); } void foo(T t); }
但是我收到了这个错误:&#34; Foo。这不能从静态上下文中引用。&#34;
具体来说,我是在&#34; T&#34;在酒吧(T t)。但是foo(T t)不会产生相同的错误。我不明白为什么这是一个静态背景以及错误的真正含义。
答案 0 :(得分:12)
“嵌套”接口(示例中为Bar)是隐式静态的。因此,它无法访问与Foo相关的实例特定信息,例如其泛型类型。
参见例如JLS #8.5.1:
成员接口是隐式静态