美文网首页
Kotlin KClass反射

Kotlin KClass反射

作者: kevinsEegets | 来源:发表于2020-06-02 16:24 被阅读0次
timg (1).jpeg

成员变量和成员函数

  • 返回类可访问的所有函数和属性,包括继承自基类的,但是不包括构造器
    override val members: Collection<KCallable<*>>

  • 返回类声明的所有函数
    val KClass<*>.declaredFunctions: Collection<KFunction<*>>

  • 返回类的扩展函数
    val KClass<*>.declaredMemberExtensionFunctions: Collection<KFunction<*>>

  • 返回类的扩展属性
    val <T : Any> KClass<T>.declaredMemberExtensionProperties: Collection<KProperty2<T, *, *>>

  • 返回类自身声明的成员函数
    val KClass<*>.declaredMemberFunctions: Collection<KFunction<*>>

  • 返回类自身声明的成员变量(属性)
    val <T : Any> KClass<T>.declaredMemberProperties: Collection<KProperty1<T, *>>

类相关的信息

  • 1.返回类的名字
    public val simpleName: String?

  • 2.返回类的全包名
    public val qualifiedName: String?

  • 3.如果这个类声明为object,则返回其实例,否则返回null
    public val objectInstance: T?

  • 4.返回类的可见性
    @SinceKotlin("1.1")
    public val visibility: KVisibility?

  • 5.判断类是否为final类(在Kotlin中,类默认是final的,除非这个类声明为open或者abstract)
    public val isFinal: Boolean

  • 6.判断类是否是open的(abstract类也是open的),表示这个类可以被继承
    `public val isOpen: Boolean

  • 7.判断类是否为抽象类
    public val isAbstract: Boolean

  • 8.判断类是否为密封类,密封类:用sealed修饰,其子类只能在其内部定义
    public val isSealed: Boolean

  • 9.判断类是否为data类
    public val isData: Boolean

  • 10.判断类是否为成员类
    public val isInner: Boolean

  • 11.判断类是否为companion object
    public val isCompanion: Boolean

  • 12.返回类中定义的其他类,包括内部类(inner class声明的)和嵌套类(class声明的)
    public val nestedClasses: Collection<KClass<*>>

  • 13.判断一个对象是否为此类的实例
    public fun isInstance(value: Any?): Boolean

  • 14.返回这个类的泛型列表
    public val typeParameters: List<KTypeParameter>

  • 15.类其直接基类的列表
    public val supertypes: List<KType>

  • 16.返回类所有的基类
    val KClass<*>.allSuperclasses: Collection<KClass<*>>

  • 17.返回类的伴生对象companionObject
    val KClass<*>.companionObject: KClass<*>?

参考链接

http://s0kotlinlang0org.icopy.site/api/latest/jvm/stdlib/kotlin.reflect/-k-class/
https://juejin.im/post/5be5576ef265da61616e331d

相关文章

  • Kotlin KClass反射

    成员变量和成员函数 返回类可访问的所有函数和属性,包括继承自基类的,但是不包括构造器override val me...

  • Kotlin反射

    Kotlin中KClass反射 Kotlin是函数式编程语言,它有一些独有的特性,例如,在Kotlin中的Prop...

  • Kotlin反射全解析3 -- 大展身手的KProperty

    前言 前面我们说了Kotlin的反射就是把类的信息保存到了KClass,通过KClass可以获取类的一些信息 可以...

  • Kotlin反射(2)引用类

      对类的引用是通过 KClass 实现的,KClass 是实现反射的关键所在,KClass 的一个实例表示对类的...

  • Kotlin反射全解析2 -- 超级好用的KClass

    前言 我们继续来聊反射,或许对于Java开发者来说,Class很熟悉,不过不熟悉也没事,我们来看Kotlin中的反...

  • Kotlin学习笔记(六)-反射

    [toc] 前言 这一节为Kotlin反射,主要是在Kotlin中时用Java-Api来实现反射,使用Kotlin...

  • Kotlin和Java互相调用(二)

    Kotlin反射 正如在前面不少代码中所见到的, Kotlin也提供了反射 API,这些反射 API可以方便程序在...

  • Java 反射 VS Kotlin 反射

    Kotlin 跟 Java 可以无缝衔接,因此 Kotlin 能够使用 Java 的反射机制。另外,Kotlin ...

  • Kotlin Json 序列化1 - 基本功能实现

    参考: https://github.com/yole/jkid 预备知识 Kotlin 反射; Kotlin 注...

  • Kotlin 反射

    反射是语言与库中的一组功能, 可以在运行时刻获取程序本身的信息。 类引用 要得到一个静态的已知的 Kotlin 类...

网友评论

      本文标题:Kotlin KClass反射

      本文链接:https://www.haomeiwen.com/subject/wmvuzhtx.html