在
kotlin
我想了解<T : Person<T>>
使用method2
.
open class Person<T>
class Worker : Person<Int>()
fun <T : Comparable<T>> method1(x: T, y: T, z: T) {}
fun <T : Person<T>> method2(x: T, y: T, z: T) {}
fun main() {
val result1 = method1(1, 2, 3) //It's OK
val result2 = method2(Person<Int>, Person<Int>, Person<Int>) //compile error
val result3 = method2(Worker(), Worker(), Worker()) //compile error
}
result1
有效而result2
和result3
无效?<T : Person<T>>
method2
?method2
为什么kotlin让我写这个方法没有编译错误?
(错误是我调用函数的地方,而不是我定义它的地方)