Kotlin 公共常量在其他 Java 类中无法访问?

Sum*_*t T 3 java android kotlin

在我的 Kotlin A 类中,我定义了一个公共常量,例如:

class A {
    companion object {
        val TESTVALUE = "MY TEST VALUE"
    }
    ....
}
Run Code Online (Sandbox Code Playgroud)

在我的另一个 Java B 类中,我尝试使用它,例如:

class B {

    private void testFunction() {
        String testValue = A.Companion.TESTVALUE
        // 'or'
        String testValue = A.TESTVALUE

        .....
    }
    ....
}
Run Code Online (Sandbox Code Playgroud)

我收到的错误是:“TESTVALUE 具有私人访问权限”

在此输入图像描述

Vin*_*ada 5

要从 Java 类中的 Kotlin 类访问伴随对象字段,您需要为 Java 读取提供适当的注释。这个注释是@JvmField.

如此处的 Kotlin 文档所示

class A {
   companion object {
      @JvmField
      val TESTVALUE = "MY TEST VALUE"
   }
}
Run Code Online (Sandbox Code Playgroud)