Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么';Java 8是否允许接口成员是私有的?_Java - Fatal编程技术网

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

为什么';Java 8是否允许接口成员是私有的?,java,Java,然而,这是在Java8发布之前 以前,静态成员是不允许的,因为实现细节不能在接口中定义。这也是为什么任何东西都不应该是私有的,因为接口的实现者需要提供实现细节 Java8改变了这种情况,不是吗?默认方法定义实现细节,静态方法也是如此。那么,为什么仍然不允许这样做呢?因为实施中的时间限制 私有方法最初在规范中,但在Java8开发时Brian Goetz向lambda规范专家邮件列表发送的一封名为“”的电子邮件中,它们被删除了 我们想从JSR-335功能计划中收回两个小功能: 接口中的私有方法 用

然而,这是在Java8发布之前

以前,静态成员是不允许的,因为实现细节不能在接口中定义。这也是为什么任何东西都不应该是私有的,因为接口的实现者需要提供实现细节


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

因为实施中的时间限制

私有方法最初在规范中,但在Java8开发时Brian Goetz向lambda规范专家邮件列表发送的一封名为“”的电子邮件中,它们被删除了

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

  • 接口中的私有方法
  • 用于包私有可见性的“包修改器”
主要原因是资源配置


如果其他人希望JLS说出原因。它只是说你不能声明成员
受保护
私有
。我只是键入了一条评论“除非有人能找到论坛线程或与JCP相关的东西,用于添加默认方法,说明原因…”,然后你发布了这条评论。:-)+1@T.J.Crowder是的,通常我会认为这是“主要基于意见的”,但在这种情况下,我们实际上是客观的答案!我知道我有理由躲在那张名单上看起来这很快就要到来了,而且Java 9的包可见性的默认修饰符即将退出?谢谢你的回答。javac编译器最近增加了对私有方法的支持。看见