gpt4 book ai didi

Java 嵌套包可见性

转载 作者:行者123 更新时间:2023-11-30 07:05:49 26 4
gpt4 key购买 nike

通常当我在设计项目的一些新组件时,我有一个限制,我无法以正确的方式解决...

想象一个包“组件”,在这个组件包中,你有一些公共(public)类/接口(interface),它们自然被设计为公开共享,还有一些类/接口(interface)(ComponentSpecificStuff)在内部包中需要,但那些不应该从外部可见包...

现在使用当前的 Java 可能性,我实现此目的的唯一方法是违反(不在“组件”包之外公开 Stuff)时刻...

您如何解决这个问题?

最佳答案

是的,您可以通过在包名称中使用 internal 关键字在某种程度上做到这一点。
例如你有一个包裹

com.myPackage.component

你可以有另一个包作为

com.myPackage.component.internal.blahblah

当您使用关键字 internal 时,它不会暴露给其他 jar,也不能在 jar 外部使用,但可以在 jar 内部由另一个包使用。在这里,内部包正在进一步向下扩展 com.myPackage.component。正如 Jon Skeet 所引用的就编译器而言,包不是分层的 - “层次结构”只是有效组织的人类模式匹配。这就是我进一步扩展包的意思。


编辑

你可以通过不给类任何访问修饰符来定义一个类包私有(private)示例:

class PackagePrivateClass{

}

您可以在同一个包中导入此类,但在包外它不允许您使用它。

关于Java 嵌套包可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26302066/

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