为什么';Java 8是否允许接口成员是私有的?
然而,这是在Java8发布之前 以前,静态成员是不允许的,因为实现细节不能在接口中定义。这也是为什么任何东西都不应该是私有的,因为接口的实现者需要提供实现细节为什么';Java 8是否允许接口成员是私有的?,java,Java,然而,这是在Java8发布之前 以前,静态成员是不允许的,因为实现细节不能在接口中定义。这也是为什么任何东西都不应该是私有的,因为接口的实现者需要提供实现细节 Java8改变了这种情况,不是吗?默认方法定义实现细节,静态方法也是如此。那么,为什么仍然不允许这样做呢?因为实施中的时间限制 私有方法最初在规范中,但在Java8开发时Brian Goetz向lambda规范专家邮件列表发送的一封名为“”的电子邮件中,它们被删除了 我们想从JSR-335功能计划中收回两个小功能: 接口中的私有方法 用
Java8改变了这种情况,不是吗?默认方法定义实现细节,静态方法也是如此。那么,为什么仍然不允许这样做呢?因为实施中的时间限制 私有方法最初在规范中,但在Java8开发时Brian Goetz向lambda规范专家邮件列表发送的一封名为“”的电子邮件中,它们被删除了 我们想从JSR-335功能计划中收回两个小功能:
- 接口中的私有方法
- 用于包私有可见性的“包修改器”
如果其他人希望JLS说出原因。它只是说你不能声明成员
受保护
或私有
。我只是键入了一条评论“除非有人能找到论坛线程或与JCP相关的东西,用于添加默认方法,说明原因…”,然后你发布了这条评论。:-)+1@T.J.Crowder是的,通常我会认为这是“主要基于意见的”,但在这种情况下,我们实际上是客观的答案!我知道我有理由躲在那张名单上看起来这很快就要到来了,而且Java 9的包可见性的默认修饰符即将退出?谢谢你的回答。javac编译器最近增加了对私有方法的支持。看见