作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
假设我的根包中有 20 个类。我决定通过在根包下创建 3 个子包来组织类。然后我将 5 个类放入每个子包中,在根包中留下 5 个类(因为它们是顶级类)。现在,因为我需要使用根包中 5 个类的子包中的类,所以我最终将子包中的类公开,而在子包之前,这些类仅在包内公开。
上面的代码组织是在很好的指导下完成的。分包是按特性分包,不是按层分包。最小化包之前的相互依赖性。但是,从更高级别访问许多子包类仍然是有意义的。
是否有解决此类情况的良好做法?
最佳答案
不幸的是没有。通过将其设为包私有(private)(默认访问),您最多可以拥有包级别的可见性。您不能让一个类只对同一模块 中的其他类可见。我想Project Jigsaw和 JSR 294将解决这个问题(以及其他内容),但您可能要到 Java 9 才能看到它。
关于Java 分包而不公开分包类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22967749/
系统详细信息: Arch Linux:4.11.7-1-ARCH x64 Oracle Java JDK:1.8.0_131 IntelliJ Scala 插件:2017.1.19(最新) SBT:0
我是一名优秀的程序员,十分优秀!