16

我有一个 Kotlin 类,它有一个类对象,例如

public class Foo {
    public class object {
        public val SomeValue : Int = 0
    }
}

如果我在 Java 中使用这个类,我如何访问类对象中的 SomeValue?如果它是一个具有静态属性的 Java 类,我只会使用 Foo.SomeValue - 但我不能在这里这样做。

IntellIJ 显示我可以访问Foo.object.$instance,但$instance没有 getSomeValue 或类似的东西。如果我尝试使用 $instance.SomeValue ,当我构建错误消息时会说:

SomeValue 在 Foo.object 中具有私有访问权限

我正在使用 Kotlin 0.5.1。

4

3 回答 3

15

作为一种解决方法,您应该能够使用以下命令使 Kotlin 字段可见@JvmField

@JvmField var addressLocationBox: ToOne? = null
于 2020-03-09T12:39:02.350 回答
8

getSomeValue() 的“缺失”是 IDE 中的一个错误。如果你使用它,它编译OK。我创建了一个问题:http: //youtrack.jetbrains.com/issue/KT-3337

于 2013-02-10T10:25:36.673 回答
5
data class YourClass(@JvmField val name: String)
于 2020-04-07T11:06:20.707 回答