在Java中,静态接口与普通接口有何区别?

6

我想知道在Java中带有static关键字的接口和普通接口之间有什么不同?
何时何地我们应该在interface之前使用static关键字?为什么我们要使用它?你可以以这个接口作为例子。
非常感谢!
public static interface Map.Entry<K,V>

2个回答

8

没有区别:static隐含的 - 所有接口实际上都是静态的。

使用或不使用static关键字是一种风格问题。个人而言,我更喜欢使用static,因为它符合内部静态的语义。


2
我也喜欢使用它。同样对于内部的“enum”声明,只是为了不让那些不知道这个警告的人感到困惑,就像你可以声明没有访问修饰符的接口方法一样,因为它们本质上是“public”。+1 - Brian

0

接口本质上是静态的。 您不能在块内声明接口。例如,以下代码摘录无法编译,因为接口HelloThere定义在方法greetInEnglish的主体内:

public void greetInEnglish() {
    interface HelloThere {
       public void greet();
    }
    class EnglishHelloThere implements HelloThere {
        public void greet() {
            System.out.println("Hello " + name);
        }
    }
    HelloThere myGreeting = new EnglishHelloThere();
    myGreeting.greet();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接