【发布时间】:2021-03-10 00:06:29
【问题描述】:
谁能解释我如何比较KClasses 和它们之间的接口?我知道如何检查类或接口是否相等,但我不明白如何检查 A 类是否是 B 类的超类等。
interface IB {}
interface IC : IB {}
open class A {}
open class B : A() {}
open class C : B(), IC {}
fun main(args: Array<String>) {
if (B::class == B::class) { println("B class is equal to B class") }
if (IB::class == IB::class) { println("IB interface is equal to IB interface") }
if (A::class ??? B::class) { println("A class is parent of B class") }
if (A::class ??? C::class) { println("A class is superclass of C class") }
if (C::class ??? IC) { println("C class implements IC interface") }
if (IC ??? IB) { println("IC interface implements IB interface") }
}
【问题讨论】:
-
Klutter 库还具有对
Class和KClass以及Type和KType的这些比较的扩展,您可能会遇到 Kotlin 反射。 github.com/kohesive/klutter/blob/master/reflect-core-jdk6/src/… 和更多github.com/kohesive/klutter/blob/master/reflect-full-jdk6/src/…
标签: kotlin reflection