import kotlin.reflect.KProperty
import kotlinx.serialization.*
import kotlinx.serialization.json.JSON.Companion.stringify
class Delegate<T: Any>(val key: String, private val default: T) {
operator fun getValue(thisRef: Any?, property: KProperty<*>): String {
return "$thisRef, thank you for delegating '${property.name}' to me!"
}
operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) {
println("$value has been assigned to '${property.name}' in $thisRef.")
stringify(default)
}
}
fun main(args: Array<String>) {
var t by Delegate("test", Data("t"))
}
@Serializable
data class Data(val name: String)
Delegate类的泛型我约束为Any下的字类,为什么stringify 不接收
不用泛型就没问题,这里应该是不能用泛型,应该是serialization在编译期就要告诉它确切的类型
https://github.com/JetBrains/...
reified需要一个确定的类型