我是否应该在Java 8接口中明确声明静态方法为" public static"而不是"静态"只要?

时间:2017-01-04 13:57:24

标签: interface java-8 static-methods

查看Java 8 API中的一些接口(例如:Stream)我看到静态方法被声明为public static,但默认方法和抽象方法都没有。从技术角度来看如果我在接口的静态方法中省略了public,我得到了一些不同的公共访问修饰符?

1 个答案:

答案 0 :(得分:4)

The Java 8 Language specification明确指出:

  

接口主体中的每个方法声明都是隐式的   上市。这是允许的,但作为一种风格,气馁,   冗余地指定方法声明的公共修饰符   界面。

但是,new feature coming with Java 9包含支持私有接口方法。这些私有方法对于重用默认方法可以从中受益的代码块非常有用。

因此,我认为在Java API中使用 public 是对此更改的预期,以便为了精确而明确方法可见性。因此,即使Java 8不鼓励它,您也可以将其视为一种新的最佳实践。 进一步阅读here