根据我的经验,Java中类的包私有可见性变得多余。
包 - 私有可见性似乎基于这样一个前提,即另一个类几乎私有使用的类可能保存在同一个包中。通常情况并非如此。 有人在探索改进的访问修饰符/备用机制吗?
尝试使用包私有可见性时出现问题:
使用public的问题:
目前的解决方法:
问题:
答案 0 :(得分:1)
是的,我认为这很有用。
我认为您正在寻找的是project jigsaw,它最终将成为Java 9.我不是这方面的专家,但您可以查看以下问题及其答案得到一个主意:
我没有这些框架的经验。
答案 1 :(得分:0)
看起来像是来自scala
的功能。存在访问修饰符的范围。我发现this tutorial很有用。
方法可以在某个包的范围内是私有的
package company.module.domain
class Example {
private[module] def moduleMethod = ???
private[domain] def domainMethod = ???
}
在此示例中,moduleMethod
在包module
及其子包(如domain
)中的任何位置都可用。方法domainMethod
仅在domain
包中可见,在外部不可见。
不幸的是,此功能与java
不兼容,并且这些限制被编译为字节代码而丢失了限制,例如to public