java - Kotlin 中的包等效可见性修饰符

标签 java kotlin

我正在编写一个使用工厂模式的程序。我有一个名为 AssetFundCalculator 的接口(interface)和一个名为 AssetFundCalculatorImpl 的类,它实现了该接口(interface)。

AssetFundValidator 类验证一些输入,并能够实例化一个有效的 AssetFundCalculatorImpl

我希望程序的其余部分只知道接口(interface),而不知道 AssetFundCalculatorImpl,这样只有 AssetFundValidator 可以实例化它。

我的包结构是这样的:

enter image description here

在 Java 中,我会给 AssetFundCalculatorImpl 类或它的构造函数提供包可见性修饰符,这样可以解决问题,但在 Kotlin 中,没有包可见性修饰符。

有解决办法吗? 我不想把这段代码放到单独编译的模块中,所以 internal 修饰符不起作用。

最佳答案

您可以将AssetFundValidatorAssetFundCalculatorImpl放在同一个文件中,并将AssetFundCalculatorImpl标记为private。在这种情况下,它只能被同一文件中的代码访问,包括 AssertFundValidator,但不能被程序其他部分的任何代码访问。

关于java - Kotlin 中的包等效可见性修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35550395/

相关文章:

android - 如何使用流协程创建倒计时

android - 如何绘制内边框?

java - MapDB ClassNotFoundException : kotlin. jvm.internal.Intrinsics

java - 无法从 javascript 获取 json 到运行中的 java

java - 项目、文件夹、包应该放什么

java - Android 中的 Firebase 数据库未更新

java - Java是否自动优化多核处理器的循环

android - StateFlow 在后退导航中再次获取相同的数据

android-studio - 类型参数不在其范围内 预期 : Any Found: String

javascript - 我在运行这个jsp页面时不断收到错误