如何在Kotlin中创建没有访问者的属性?

Ran*_*ku' 5 java accessor kotlin

我正在使用Java代码中的Kotlin类.我的Kotlin课程看起来像:

class Something {
    var a = 0
}
Run Code Online (Sandbox Code Playgroud)

我希望能够a从Java代码中访问

s = new Something();
s.a = 5;
Run Code Online (Sandbox Code Playgroud)

但是,我只有s.getA()s.setA(5).有没有办法让这个属性可以直接从Java设置和获取?显然,在这种情况下我们不能有自定义getter和setter.

Coo*_*tri 10

您可以使用注释对属性进行@JvmField批注,以将其公开为Java字段.

如果需要将Kotlin属性公开为Java中的字段,则需要使用@JvmField批注对其进行批注.该字段与底层属性具有相同的可见性.如果属性具有支持字段,非私有,没有open,override或const修饰符,并且不是委托属性,则可以使用@JvmField对属性进行批注.

  • 正是我需要的.谢谢! (2认同)