从Java访问Kotlin类对象

时间:2013-02-09 14:31:15

标签: java kotlin

我有一个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。

3 个答案:

答案 0 :(得分:9)

作为一种解决方法,您应该可以使用@JvmField使Kotlin字段可见:

@JvmField var addressLocationBox: ToOne? = null

答案 1 :(得分:5)

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

答案 2 :(得分:2)

data class YourClass(@JvmField val name: String)