kotlin,我们可以在另一个类中使用参数传递的实际变量值如何?

我在Kotlin使用授权。 因此,我有基本的类处理常见的网络结果,但唯一的区别是数据(模型类)

class BaseDataDelegation<T>(var oldData: T): WebDataListener<T> { override fun onSuccess(data: T) { oldData = data //oldData's original variable value which is inside main activity should also be updated /.../ } override fun onFailed() { /.../ } } 

然后在MainActivity我打电话

 dataManager.getResponse(BaseDataDelegation(oldData))//in DataManager.getResponse(listener:WebDataListener<T>) 

现在,当我将oldData传递给BaseDataDelegation时,在BaseDataDelegation类中更改BaseDataDelegation值时,它应该反映回MainActivty变量。
我怎么能在Kotlin做到这一点?

您可以使用可变属性引用来实现此目的。 这是一个例子:

 class BaseDelegation<T>(val property: KMutableProperty0<T>) { override fun onSuccess(data: T) { property.set(data) } } 

然后,构造一个BaseDelegation ,使用对属性的绑定引用 ,例如this::oldDatamyActivity::oldData (属性本身应该是可变的,即var )。

这是一个简化的可运行演示:( 链接)