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

Jos*_*lds 2 java

虽然有些人之前已经问过这个问题,但是在Java 8发布之前.

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

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

ysh*_*vit 7

由于实施中的时间限制.

私有方法最初是在规范中,但在一个名为" Some Pullbacks " 的电子邮件中,由Brian Goetz发送到lambda-spec-experts邮件列表,当Java 8正在开发时,它们被拉了.

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

  • 接口中的私有方法
  • 用于包私有可见性的"包修饰符"

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

  • 我只是在键入*评论"除非有人能找到论坛帖子或与JCP相关的东西,用于添加说明原因的默认方法......"并且你发布了这个.:-) +1 (2认同)