为了账号安全,请及时绑定邮箱和手机立即绑定

如何对此 Kotlin 类属性使用 setter?

如何对此 Kotlin 类属性使用 setter?

饮歌长啸 2022-08-03 15:38:46
我在 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编码的带有公共成员的对象,我会做这样的事情:myObject.owners[0].userId = "001";myObject.owners[0].userName = "Freddy"由于该对象是用Kotlin编码的,所以我需要在Java中使用一个setter。如何使用 setter 设置数组的第一个元素中的属性?
查看完整描述

2 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

对于每个 Kotlin 属性,您可以在 Java 中将其 getter 称为 ,如果该属性是可变的,则将 setter 称为 。foogetFoo()setFoo(value)


请参见: 从 Java 调用 Kotlin — 属性


在你的例子中,只需使用 getter 访问数组,获取其项并调用 setters: and ,或者将 分配给局部变量:myObject.getOwners()[0].setUserId("001");myObject.getOwners()[0].setUserName("Freddy");Owner


MyClass.Owner owner = myObject.getOwners()[0];

owner.setUserId("001");

owner.setUserName("Freddy");


查看完整回答
反对 回复 2022-08-03
?
跃然一笑

TA贡献1826条经验 获得超6个赞

使用哪个将返回对象,然后设置值。getOwnersowners


myObject.getOwners()[0].setUserId("001");

myObject.getOwners()[0].setUserName("Freddy");


查看完整回答
反对 回复 2022-08-03
  • 2 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信