首页 > 解决方案 > 如何在 Kotlin 中修改伴生对象的属性?

问题描述

我有一个包含如下伴随对象的类。

class Customization {
    companion object {
        var become_member = ""
    }
}

我想在运行时修改伴生对象的属性。我将在这个类中添加数百个属性。所以我必须做动态。我使用了这种方法并得到如下错误。

fun customizeStrings(key:String, value:String){
    var buckTypes = Customization::class
    var buck = Customization()
    var variableToInvoke  = buckTypes.companionObject!!.memberProperties.find {
        it.name == key
    }
    println(variableToInvoke!!.name)

    if (variableToInvoke  is KMutableProperty<*>) {
     variableToInvoke.setter.call(buck, value) 
    }

}

我收到这个错误。

org.koin.core.error.InstanceCreationException:无法为 [Factory:'com.screen.splash.SplashViewModel'] 创建实例

有人可以向我解释我的错在哪里吗?或者告诉我另一种在 Kotlin 中修改伴生对象属性的方法?

标签: kotlinpropertieseditkoincompanion-object

解决方案


正如@AnimeshSahu 在评论中所说,它很有效。如果像我这样的人出现错误,请尝试直接访问目标伴侣,例如Customizationn.Companion::class. 它拯救了我的一天。


推荐阅读