2
我想遍历类层次结构和打印所有超类:如何迭代类层次结构?
open class A {}
open class B : A() {}
open class C : B() {}
fun main(args: Array<String>) {
var currentClass = C::class
while(currentClass != Any::class) {
println(currentClass)
currentClass = currentClass.superclass
}
}
但科特林KClass
没有superclass
方法。
我曾尝试使用superclass
从Java:
currentClass = currentClass.java.superclass.kotlin
但它造成的编译错误:
Error:(9, 52) Type inference failed: 'T' cannot capture 'in ('C'..'C?')'.
Type parameter has an upper bound 'kotlin.Any' that cannot be satisfied
capturing 'in' projection
因此,任何人可以解释我怎么办呢?