Java兼容性的公共字段

Joh*_*ith 14 field public member kotlin

我发现最近对Kotlin作为一种语言的兴趣,因为我们开发的平台是基于Java 6的,因此缺乏近年来给Java带来的任何语法糖.

只有一件事使得在开发中不可能使用Kotlin而不是Java,也就是说,我们开发的平台在内部使用一些反射并要求成员公开.否则它将不起作用.

因此,从Kotlin文件生成的字节码实际上产生了公共getter和setter,这些字段本身仍然是私有的.

有没有办法克服这个问题,所以我得到了真正的公共领域?

我知道需要公共领域的设计失败,但系统对我们来说是一个黑盒子,我们不能改变它必须这样的事实.

mar*_*ran 19

注释@JvmField应该对你有所帮助.它使Kotlin编译器将该属性公开为JVM上的字段.见:https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-jvm-field/