直接从 Java 访问 kotlin public field,无需 getter



下面是一个来自Android的模式示例(只是一个示例,对Android细节不感兴趣(:

/*Im a kotlin file*/
class ListItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
    val text: = itemView.my_view
}

然后,模式是你按这样的方式访问文本字段:

/*Im a Java file*/
holder.text.setText("Metasyntactic variable");

不幸的是,有一个具有设置结构的大文件执行上述操作,然后具有:

/*Im a Java file, but this particular holder is a kotlin file*/
holder.getText().setText("Metasyntactic variable");

有可能解决这个问题吗?也许有一些@Jvm注释

@JvmField

如果您需要在 Java 中将 Kotlin 属性公开为字段,则需要使用@JvmField注释对其进行注释。该字段将具有与基础属性相同的可见性。如果属性具有支持字段、不是私有的、没有打开、覆盖或 const 修饰符,并且不是委托属性,则可以使用 @JvmField 对属性进行批注。

相关内容

最新更新