【问题标题】:Is there a way to identify a Kotlin data class from a regular Kotlin class?有没有办法从常规的 Kotlin 类中识别出 Kotlin 数据类?
【发布时间】:2015-05-18 03:55:47
【问题描述】:

有没有办法从常规 Kotlin 类中识别出 Kotlin 数据类?可能喜欢使用反射?

【问题讨论】:

    标签: reflection metaprogramming kotlin data-class


    【解决方案1】:

    从 Kotlin 1.1 开始,在 KClass 上使用 isData 属性。 (docs)

    在 Kotlin 1.1 之前,您可以尝试使用一些启发式方法,例如检查它是否包含下一个方法:

    • public final copy
    • public final component{N}
    • public static copy$default

    请注意,这些实现细节将来可能会更改。

    【讨论】:

      【解决方案2】:

      从 1.1 开始,类上有一个 isData 属性

      MyDataClass::class.isData
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多