kotlin - 如何在 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 中修改伴生对象属性的方法?
解决方案
正如@AnimeshSahu 在评论中所说,它很有效。如果像我这样的人出现错误,请尝试直接访问目标伴侣,例如Customizationn.Companion::class
. 它拯救了我的一天。
推荐阅读
- javascript - 当我点击按钮时隐藏的内容不显示,这是为什么呢?
- typescript - DI:类的构造函数注入如何多次调用
- java - 使用 dispatchCommand 在命令中添加方法
- testing - 使用 FsCheck 我在测试中得到不同的结果,一次 100% 通过,另一次错误
- sql - 如何计算来自相同 ID 的不同值?
- makefile - 为调试和发布目标配置 makefile
- javascript - 描述一下这段代码是如何工作的 Symbol.iterator
- mysql - 从数据库中复制一些数据并保持参照完整性
- angular - 标头在打字稿Angular中不起作用
- php - 使用 Laravel 创建 LMS 并为学生分配课程