繁体   English   中英

java中的静态接口是什么?

[英]What is a static interface in java?

我正在阅读Map.Entry接口,当我注意到它是一个static接口时。 我不太明白什么是静态接口,它与常规接口有什么不同?

public static interface Map.Entry<K,V>

这是接口的定义。 此处的文档: Map.Entry<K,V>

我对它不是内部接口的情况很好奇。

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

对于接口, static修饰符实际上是可选的。 这种区别对于接口没有意义,因为它们不包含任何可以访问外部this代码。

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

 interface A {
    void testA();
    public interface B {
        void testB();
    }
 } 

最后,即使是 Android Studio 也表明不需要使用带有内部接口的静态

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM