【发布时间】:2019-07-18 23:36:57
【问题描述】:
我有一个对象:
class User {
var id: String? = null
var name: String? = null
}
和对列表:
val fieldsToChange = listOf<Pair<String, String>>(Pair("name", "foo"), Pair("id", "bar"))
我想迭代槽对列表并使用反射为给定属性设置适当的值。
【问题讨论】:
-
您确定需要为此使用反射吗?您可以改用map as a delegate。
-
@JuliaSamól 在我的情况下,我有包含对象字段和所需值的输入文件。对我来说,在这个特定的用例中使用反射似乎是合理的。我想知道在这种情况下是否可以使用 map 作为委托...
-
事实上,这个“地图委托”在底层使用了反射,但我认为它比任何自定义解决方案都更具可读性。无论如何,除非出于某种原因您必须更改已经存在的
User对象,是的,您可以以这种方式使用地图。
标签: kotlin reflection kotlin-reflect