虽然some have asked this question before是在Java 8发布之前。
以前,不允许使用静态成员,因为实现细节未在接口中定义。这也是为什么没有什么应该是私有的,因为接口的实现者需要提供实现细节。
这种用Java 8改变了,不是吗?默认方法定义实现细节,静态方法也是如此。那么,为什么仍然不允许这样做?
答案 0 :(得分:7)
由于实施中的时间限制。
私有方法最初属于规范,但在一封名为" Some Pullbacks"的电子邮件中,由Brian Goetz在Java 8开发时发送给lambda-spec-experts邮件列表,他们被拉了。
我们希望从JSR-335功能计划中撤回两个小功能:
- 接口中的私有方法
- "包装修饰符" for package-private visibility
主要原因是资源......