在Map中存储属性
一个比较常见的使用场景就是将属性值存储在Map中。这种情况经常出现在JSON或一些其他的动态事件上。在这种情况下,你可以使用Map实例作为委派属性的委派。
class User(val map: Map<String, Any?>) {
val name: String by map
val age: Int by map
}
在这个例子中,构造器的参数是个Map对象。
val user = User(mapOf(
"name" to "John Doe",
"age" to 25
))
println(user.name)
println(user.age)
将打印出:
John Doe
25
对于var属性同样适用,如果你使用MutableMap替代只读Map。