Class Kotlin:如何将数据成员的属性传递给自己的属性?

Class Kotlin:如何将数据成员的属性传递给自己的属性?,class,kotlin,properties,Class,Kotlin,Properties,有两个班。第一类具有公共属性。第二个类有一个私有数据成员,该成员是第一个类的实例和公共属性: class A { var s = "test" } class B { private var a = A () public val prop = a.s } 我希望道具是对a.s财产的参考。如果我们读取prop,我们将获得存储在a.s.中的值,如果我们写入prop,则新值将存储在a.s.中。如果a.s.的内容在其他地方更改,则prop也应相应更新。

有两个班。第一类具有公共属性。第二个类有一个私有数据成员,该成员是第一个类的实例和公共属性:

class A {
    var s = "test"
}

class B {
    private var a = A ()
    public val prop = a.s
}
我希望道具是对a.s财产的参考。如果我们读取prop,我们将获得存储在a.s.中的值,如果我们写入prop,则新值将存储在a.s.中。如果a.s.的内容在其他地方更改,则prop也应相应更新。 这能用一种简单的方法做到吗?我试着这样做,就像在这段代码中一样,
public val prop=a.s
,但这不起作用-属性之间没有连接

在Kotlin中有没有一种简单的方法来引用另一个类的属性

属性之间没有连接

它们都引用了堆内存中的同一个字符串对象,它们都是完全相同的

但是,如果将
A.s
的引用覆盖到另一个字符串对象,则
A.s
将保留一个新引用,而
B.prop
将保留旧引用

那么如何解决这个问题呢? 您只需将
B.prop
的getter委托给Kotlin中的
A.s

A类{
var s=“测试”
}
B类{
私有变量a=a()
瓦尔道具:字符串
get()=a.s
}
属性之间没有连接

它们都引用了堆内存中的同一个字符串对象,它们都是完全相同的

但是,如果将
A.s
的引用覆盖到另一个字符串对象,则
A.s
将保留一个新引用,而
B.prop
将保留旧引用

那么如何解决这个问题呢? 您只需将
B.prop
的getter委托给Kotlin中的
A.s

A类{
var s=“测试”
}
B类{
私有变量a=a()
瓦尔道具:字符串
get()=a.s
}
使用
val prop get()=a.s
。这为属性定义了getter函数,因此它将始终返回
a.s
的当前值。使用
val prop get()=a.s
。这为属性定义了getter函数,因此它将始终返回
a.s
的当前值。