如何在 Kotlin 中创建一个没有访问器的属性?

5

我正在使用Java代码中的Kotlin类。我的Kotlin类如下:

class Something {
    var a = 0
}

我希望能够在Java代码中访问a,例如:

s = new Something();
s.a = 5;

然而,我只有s.getA()s.setA(5)。有没有办法让这个属性在Java中直接可读可写?显然,在这种情况下我们无法使用自定义的getter和setter。

1个回答

10
您可以使用@JvmField注解来将属性公开为Java字段。

如果需要在Java中将Kotlin属性公开为字段,需要使用@JvmField注解。该字段的可见性与底层属性相同。只有当属性具有支持字段、非私有、不具有开放、覆盖或const修饰符,并且不是委托属性时,才可以使用@JvmField注解属性。


2
正是我所需要的。谢谢! - Randy Sugianto 'Yuku'
这在JVM版本大于等于1.6.10上无法工作。 “JvmField不能应用于覆盖其他属性的属性”。 - Aris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接