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