为什么Java 8不允许接口成员是私有的?

时间:2015-03-30 03:57:21

标签: java

虽然some have asked this question before是在Java 8发布之前。

以前,不允许使用静态成员,因为实现细节未在接口中定义。这也是为什么没有什么应该是私有的,因为接口的实现者需要提供实现细节。

这种用Java 8改变了,不是吗?默认方法定义实现细节,静态方法也是如此。那么,为什么仍然不允许这样做?

1 个答案:

答案 0 :(得分:7)

由于实施中的时间限制。

私有方法最初属于规范,但在一封名为" Some Pullbacks"的电子邮件中,由Brian Goetz在Java 8开发时发送给lambda-spec-experts邮件列表,他们被拉了。

  

我们希望从JSR-335功能计划中撤回两个小功能:

     
      
  • 接口中的私有方法
  •   
  • "包装修饰符" for package-private visibility
  •   
     

主要原因是资源......