Kotlin:检查KTypeProperty1是否为数据类

时间:2020-01-14 22:06:36

标签: kotlin reflection

使用反射,我可以遍历属性:

data class AnotherDataClass(
    val property: String,
    val dataClass: DataClass
)


AnotherDataClass::class.memberProperties.filter {
    return it::class.isData
}

但是it::class.isData始终为假,因为it的类型为jvm.internal.KProperty1Impl。有没有办法检查此类是否为数据类?

1 个答案:

答案 0 :(得分:1)

使用

AnotherDataClass::class.memberProperties.filter {
    (it.returnType.classifier as? KClass<*>)?.isData ?: false
}