java中的静态接口是什么?

java中的静态接口是什么?,java,interface,Java,Interface,我正在浏览Map.Entry界面,这时我注意到它是一个静态界面。我不太明白什么是静态接口,它与常规接口有何不同 public static interface Map.Entry<K,V> 公共静态接口映射。条目 这是接口的定义。这里的文档:。静态内部接口与内部接口相同,所有访问规则与内部静态类相同。所以,只有当您有权访问其父类/接口时,内部接口才可以访问。在下面的例子中,您只能从接口A的包访问接口B,因为A有默认的访问修饰符。顺便说一句:接口B可以是静态的,也可以不是 int

我正在浏览
Map.Entry
界面,这时我注意到它是一个
静态
界面。我不太明白什么是静态接口,它与常规接口有何不同

public static interface Map.Entry<K,V>
公共静态接口映射。条目

这是接口的定义。这里的文档:。

静态内部接口与内部接口相同,所有访问规则与内部静态类相同。所以,只有当您有权访问其父类/接口时,内部接口才可以访问。在下面的例子中,您只能从接口A的包访问接口B,因为A有默认的访问修饰符。顺便说一句:接口B可以是静态的,也可以不是

 interface A {
    void testA();
    public interface B {
        void testB();
    }
 } 
我对它不是内部接口的情况很好奇

static
修饰符仅允许在嵌套类或接口上使用。在您的示例中,
Entry
嵌套在
Map
界面中


对于接口,
静态
修饰符实际上是可选的。这种区别对于接口来说毫无意义,因为它们不包含任何可以访问外部
的代码。

最后,即使是Android Studio也指出,不需要对内部接口使用静态


当外壳不是内部接口时,它可能与我的“我很好奇”重复。感谢您指出这一点。我不知道Entry是一个内部接口,静态修饰符只允许在嵌套类/接口上使用。。。这让很多人感到困惑。没有区别。他们不应该允许接口使用“static”关键字。我就在这里吗?我不明白那种解释。据我所知,静态方法是不能重写的方法,类也是一样,如果类是静态的,则不能重写它的方法,因为它们都是静态的,但接口不能是静态的,因为在这种情况下,您将无法重写它的方法。所以我不明白接口怎么可能是静态的?@MaxHusiv对静态类的理解是不正确的,它不会导致方法是静态的。对于嵌套类,
static
表示该类没有对外部类的隐式引用。接口中的静态接口在核心hibernate中使用,例如接口CustomEntityDirtinessStrategy。