Kimse bana KClasse-s ve arayüzleri kendi aralarında nasıl karşılaştırılabileceğini açıklayabilir mi? Ben sınıfları veya arabirimleri eşit olduğunu nasıl kontrol edileceğini bilinen ama, A sınıfı B sınıfı üst sınıf olup olmadığını kontrol etmek vbSınıflar ve arayüzler nasıl karşılaştırılır?
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 is implement IC interface") }
if (IC ??? IB) { println("IC interface is implement IB interface") }
}
Klutter kütüphanesi ayrıca Kotlin yansıma ile karşılaşabileceğiniz Class' ve 'KClass',' bu karşılaştırmalar için uzantıları yanı sıra Type' ve 'KType'' zorundadır . https://github.com/kohesive/klutter/blob/master/reflect-core-jdk6/src/main/kotlin/uy/klutter/reflect/Types.kt ve daha fazlası https://github.com/kohesive/ klutter/blob/master/yansıtır-tam-jdk6/src/ana/kotlin/uy/klutter/yansıtır/tam/Types.kt –