当我注意到它是一个'静态'界面时,我正在阅读Map.Entry界面。我不太了解静态接口是什么,它与常规接口有什么不同?
public static interface Map.Entry<K,V>
这是界面的定义。文档:http://docs.oracle.com/javase/6/docs/api/java/util/Map.Entry.html
答案 0 :(得分:35)
当它不是内部接口时,我很好奇。
static
修饰符仅允许嵌套的类或接口使用。在您的示例中,Entry
嵌套在Map
接口中。
对于接口,static
修饰符实际上是可选的。这种区别对接口毫无意义,因为它们不包含任何可以访问外部this
的代码。
答案 1 :(得分:4)
静态内部接口和内部接口是相同的,所有访问规则都与内部静态类相同。因此,只有在您可以访问其父类/接口时才能访问内部接口。在下面的情况下,您将只能从接口A的包中访问接口B,因为A具有默认访问修饰符。 BTW:接口B可以是静态的。
interface A {
void testA();
public interface B {
void testB();
}
}
答案 2 :(得分:0)