gpt4 book ai didi

android - 如何在不同模块中隐藏 Java 中 Kotlin 内部类的可见性?

转载 作者:行者123 更新时间:2023-12-02 19:21:51 32 4
gpt4 key购买 nike

我正在研究用 Kotlin 开发的 Android 库。我将某些类的访问修饰符保留为internal。内部类仅在 Kotlin 的该库模块中可见。如果我在应用程序中实现该库,那么它根本不可见。

但是当从 Java 代码访问该库时就会出现问题。如果我创建 .java 文件并输入该库的内部类的名称,那么 IDE 会建议名称,并且它会被解析和编译,没有任何错误。

例如

库模块:

internal class LibClass {
// Fields and Methods
}

DemoApp 模块中实现上述库后:

应用程序模块

Kotlin :
fun stuff() {
val lib = LibClass() // Error.. Not resolving
}
java :
public void stuff() {
LibClass lib = new LibClass() // Successfully resolving and compiling
}

所以这就是问题所在。如何才能从 Java 中保护该类?

谢谢!

最佳答案

我看到您有一个带有内部修饰符的类,该类无法在 kotlin 类中实例化,但可以在 Java 文件中实例化。如果它是一个独立的类,您可以将其构造函数设为私有(private),并允许使用静态方法(Companion 对象)进行实例化。

关于android - 如何在不同模块中隐藏 Java 中 Kotlin 内部类的可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62937511/

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