gpt4 book ai didi

java - 有没有办法在 java 中使用 package-private 来允许其他包访问?

转载 作者:搜寻专家 更新时间:2023-10-31 20:01:23 24 4
gpt4 key购买 nike

所以我已经使用 C# 工作多年,现在使用 Java。在 C# 中,您可以使用 internal 关键字从公共(public) View 中隐藏类/方法,但如果您特别授予它,则允许某些程序集/包访问。当我在 Java 中环顾四周时,我没有看到任何与内部直接相同的东西。

我发现了 package-private。但是,这使它完全不为外界所知。 Java 中是否有一种方法可以允许某些其他包访问内部代码而不将其公开?

如果你问我为什么要这样做,答案通常是单元/集成测试,或者需要让某些受信任的包访问代码而不是重复它。我知道有些人认为您不应该测试私有(private)/内部代码。我也知道允许内部访问通常不是好的软件工程。我对讨论这些话题并不感兴趣,只是好奇你是否能做我想做的事。

谢谢。

最佳答案

Java 不像 .NET 那样有程序集的概念(至少现在没有)。最接近的是 OSGi bundle,它有这个概念(x-internal、x-friend 等),但这并不是真正的核心 Java。

如果您不使用 OSGi,则无需经历这一复杂过程。只要确保您的单元测试与被测类在同一个包中即可。 Maven 目录结构(即使您不使用 Maven,这也是一个不错的选择)为您设置 src/main/javasrc/test/java 等.

关于java - 有没有办法在 java 中使用 package-private 来允许其他包访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31550817/

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