簡體   English   中英

kotlin,我們如何在使用參數傳遞給它的另一個類中更改Actual變量的值?

[英]kotlin,How value of Actual variable we can change in another class to which it passed using parameter?

我在Kotlin中使用委派。 因此,我有處理通用網絡結果的基類,但唯一的區別是Data(Model class)

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>)  

現在,當我通過oldDataBaseDataDelegation ,所以當值oldData在改變BaseDataDelegation類應該反射回的變量MainActivty
如何在Kotlin中做到這一點?

您可以使用可變屬性引用來實現此目的。 這是一個例子:

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

然后,要構造BaseDelegation ,請使用對屬性的綁定引用 ,例如this::oldDatamyActivity::oldData (屬性本身應該是可變的,即var )。

這是一個簡化的可運行演示:( 鏈接)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM