Kotlin中的嵌套属性委托
正如官方教程中提到的,我们可以将一个类分配给它:Kotlin中的嵌套属性委托,kotlin,kotlin-delegate,Kotlin,Kotlin Delegate,正如官方教程中提到的,我们可以将一个类分配给它: class User(val map: Map<String, Any?>) { val name: String by map val age: Int by map } 类用户(val-map:map){ val名称:映射字符串 val年龄:按地图整型 } 然而,有时我们会像另一个类一样将非平凡的结构存储在映射中(这在处理复杂的JSON时很常见)。为了更好地阐述我的想法,我提出了如下伪代码: class
class User(val map: Map<String, Any?>) {
val name: String by map
val age: Int by map
}
类用户(val-map:map){
val名称:映射字符串
val年龄:按地图整型
}
然而,有时我们会像另一个类一样将非平凡的结构存储在映射中(这在处理复杂的JSON时很常见)。为了更好地阐述我的想法,我提出了如下伪代码:
class User(val map: Map<String, Any?>) {
val name: String by map
val otherType: OtherType by map
}
class OtherType {}
类用户(val-map:map){
val名称:映射字符串
val otherType:otherType按映射
}
类OtherType{}
可以委托这种嵌套结构吗?没问题,您可以这样做。它的工作原理是:
fun main(args: Array<String>) {
val user = User(mapOf("name" to OtherType(1)))
println(user)
}
data class User(val map: Map<String?, Any?>) {
val name: String by map
val otherType: OtherType by map
}
data class OtherType(val something:Int) {}
fun main(args:Array){
val user=user(将“名称”映射到其他类型(1)))
println(用户)
}
数据类用户(val映射:映射){
val名称:映射字符串
val otherType:otherType按映射
}
数据类OtherType(val:Int){}
您可以委派任何类型的任务。为什么在询问之前不亲自测试?