Generics Kotlin:泛型变量
您好,可以用getter和setter创建泛型变量吗 像这样:Generics Kotlin:泛型变量,generics,kotlin,Generics,Kotlin,您好,可以用getter和setter创建泛型变量吗 像这样: var myVar: T get() { return this } set(value) { executeCustomFunc<T>() } var test = "" var secondText = 1 myVar = test // (Now myVar he's of type String) myVar = secondText // (Now myVar he'
var myVar: T
get() { return this }
set(value) {
executeCustomFunc<T>()
}
var test = ""
var secondText = 1
myVar = test // (Now myVar he's of type String)
myVar = secondText // (Now myVar he's of type Int)
我认为这是不可能的。可以将类与泛型参数一起使用:
class SomeClass<T> {
var myVar: T? = null
set(value) {
executeCustomFunc(value)
field = value
}
private fun executeCustomFunc(v: T?) {
}
}
我认为这是不可能的。可以将类与泛型参数一起使用:
class SomeClass<T> {
var myVar: T? = null
set(value) {
executeCustomFunc(value)
field = value
}
private fun executeCustomFunc(v: T?) {
}
}
如果要动态“更改”变量的类型,则需要使用公共超类型(最坏情况下可能是Any
)。如果要动态“更改”变量的类型,则需要使用公共超类型(最坏情况下可能是Any
)。