Kotlin约束泛型参数必须继承自某个父类
Kotlin
open class SuperData {
}
class DataA : SuperData {
constructor() {
println("DataA constructor")
}
}
class DataB : SuperData {
constructor() {
println("DataB constructor")
}
}
fun <T : SuperData> myfun(param: T) {
if (param is DataA) {
println("myfun DataA")
}
if (param is DataB) {
println("myfun DataB")
}
}
fun main() {
val dataA = DataA()
myfun(dataA)
val dataB = DataB()
myfun(dataB)
}
DataA constructor
myfun DataA
DataB constructor
myfun DataB