gpt4 book ai didi

java - JDK9 模块将如何帮助 'package-scoped sub-packages' ?

转载 作者:搜寻专家 更新时间:2023-10-31 19:36:47 27 4
gpt4 key购买 nike

我想知道 JDK9 模块。假设您有以下 3 个包:

com.company.product
com.company.product.impl_a
com.company.product.impl_b

product.impl_aproduct.impl_b 中的类只能被包product 中的类访问。用户应该只使用 product 包中的类。您可以想象传递某些标志或属性将决定是否在内部使用 impl_aimpl_b

在 JDK8- 中,您必须在 impl_aimpl_b public 中创建这些类。这有点糟透了,因为用户可能会被欺骗,以为他们可以使用这些类。这是完全有效和允许的。

JDK9 在这方面有何帮助?我们是否会为 product.impl_a 声明一个模块,为 product.impl_b 声明另一个模块,并声明导出的类只能由第三个模块 product< 访问,这将取决于两个模块 product.impl_aproduct.impl_b?此外,实际上不可能声明一个依赖于 product.impl_aproduct.impl_b 的新模块?其他模块是否只能依赖模块product

最佳答案

您的问题似乎没有任何内容表明这三个包需要以不同的 JAR/模块结束。如果他们不这样做,只需将它们放入同一个 JAR 中,使用所描述的可见性修饰符,并使用以下模块声明:

module com.company.product { 
export com.company.product;
}

然后在 模块 com.company.product 中,您可以像往常一样使用所有包中的代码,但只能从外部 com.company.productaccessible .

关于java - JDK9 模块将如何帮助 'package-scoped sub-packages' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47346333/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com