java - 使类公开,但对 JAR 文件保持私有
问题描述
有没有办法让 Java 类公开,但只能通过 JAR 文件公开?AKA,它不是包私有,而是包公共,但它不是 JAR 公开的?
假设我有这样的结构:
project/
package1/
One.java
package2/
Two.java
package3/
Three.java
由于 3 个 .java 文件位于不同的包中,因此我需要将其公开。但是有没有办法让它们只对包含项目的 JAR 公开?这样如果另一个项目导入 JAR,它就看不到某些公共类/字段?
解决方案
使用Java 9 中的Jigsaw项目,您可以完全按照您可以决定要导出的包的方式执行此操作。例如:
module com.yourproject {
exports com.yourproject.package1;
}
这将确保仅package1
导出。
推荐阅读
- angular - RxJS 更新状态和传递
- java - javax.xml.transform.Transformer 行尾不再尊重系统属性“line.separator”
- javascript - 根据javascript中的一些值过滤JSON
- sql-server - SSRS(2016)中的时间流程图?
- webpagetest - 了解 WebPageTest 瀑布视图中的颜色
- c# - 有效负载中的属性文件夹的值与架构 Graph Api 不匹配
- python - Python:如何在每次增量迭代后附加在嵌套循环中创建的数据
- kotlin - 在 Kotlin 中创建全局常量的正确方法是什么?
- algorithm - 使用带有 2 个参数的谓词进行过滤
- javascript - 输入框中的条件语句返回值