Generics Kotlin:泛型变量

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'

您好,可以用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'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
)。