我在 Kotlin 中编写了以下类:
class MyClass {
var color: String = ""
var action: String = ""
val owners = Array(1) {Owner()}
class Owner {
var userId: String = ""
var userName: String = ""
}
}
...我正在访问它 Java:
MyClass myObject = new MyClass();
myObject.setColor("blue");
myObject.setAction("throw");
...我希望能够设置所有者。不过,我不确定如何。如果它是一个用 Java 编写的带有公共(public)成员的对象,我会做类似的事情:
myObject.owners[0].userId = "001";
myObject.owners[0].userName = "Freddy"
由于对象是用 Kotlin 编码的,我需要使用 Java 中的 setter。
如何使用 setter 设置数组第一个元素的属性?
最佳答案
对于每个 Kotlin 属性 foo
,您可以在 Java 中将其 getter 调用为 getFoo()
,如果该属性是可变的,则可以将 setter 调用为 setFoo(值)
。
参见:Calling Kotlin from Java — Properties
在您的情况下,只需使用 getter 访问数组,获取其项并调用 setter:myObject.getOwners()[0].setUserId("001");
和 myObject.getOwners()[0].setUserName("Freddy");
,或将 Owner
分配给局部变量:
MyClass.Owner owner = myObject.getOwners()[0];
owner.setUserId("001");
owner.setUserName("Freddy");
关于java - 如何为这个 Kotlin 类属性使用 setter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55107713/