我正在研究 Kotlin 与 java 的互操作。
我找不到这样的问题的答案。我有一个来自 kotlin 的对象:
object Test {
fun main(args: Array<String>) {
}
}
Run Code Online (Sandbox Code Playgroud)
反编译后的形式如下所示:
public final class Test {
public static final Test INSTANCE;
public final void main(@NotNull String[] args) {
Intrinsics.checkParameterIsNotNull(args, "args");
}
static {
Test var0 = new Test();
INSTANCE = var0;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是:为什么当我尝试创建对象时,我看到 Test 具有私有访问权限的错误?反编译代码中没有私有构造函数......
您无法创建objects 的实例。这就是 Kotlin 定义单例的方式。如果您希望能够实例化它,则必须将其声明为普通class.
如果您确实希望它是一个单例,但希望在 Java 端使用该单个实例,我想您可以将其引用为Test.INSTANCE.
| 归档时间: |
|
| 查看次数: |
824 次 |
| 最近记录: |