gpt4 book ai didi

Java 访问说明符可在不公开的情况下跨包访问

转载 作者:行者123 更新时间:2023-12-01 09:33:59 24 4
gpt4 key购买 nike

我正在构建一个 java 库,其中包含不同的包。现在的问题是,我想跨包访问 java 成员(类、方法和字段),但这些成员不需要(从 JAR 文件)暴露给客户端。例如

包 B 中的类 B 应该访问包 A 中的类 A

我发现的一种可能的情况是为 A 类 的成员声明 protected 访问说明符,并通过扩展A 类B 类我的问题是这是我在java中实现它的唯一方法吗?

如果我不想从 JAR 公开 A 类(作为公共(public))怎么办?在 C# 中,我们使用“内部”,它将提供 CSharp 库项目内的访问,但不会从二进制文件 (dll) 或汇编文件公开到最终级别。

最佳答案

不,没有这样的事情。你必须采取不同的方法。有很多选项,太多了,无法在一个答案中详细讨论,但我的脑海中只有一些基本想法:

  • 这可能是一个危险信号,表明软件包组织不良。考虑将您的包组织成更多功能组。
  • 这可能是一个危险信号,表明存在一些有问题的设计选择。考虑更合适的类和接口(interface)层次结构。
  • 考虑添加接口(interface)来公开您需要公开的内容。
  • 考虑将上述“内部”内容公开并可以安全地在外部使用。
  • 等等

但是您必须在这里进行一些重组。如果您开始添加各种技巧来解决这个问题,现在可能就足够了,但以后您可能会后悔。始终最好在第一次就尽可能正确地完成工作。

关于Java 访问说明符可在不公开的情况下跨包访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39158973/

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