【发布时间】:2019-02-16 19:47:14
【问题描述】:
我创建了这个扩展方法,它从 KClass<T> 获取所有属性
扩展方法
@Suppress("UNCHECKED_CAST")
inline fun <reified T : Any> KClass<T>.getProperties(): Iterable<KProperty1<T, *>> {
return members.filter { it is KProperty1<*, *> }.map { it as KProperty1<T, *> }
}
示例用法
data class Foo(val bar: Int) {
val baz: String = String.EMPTY
var boo: String? = null
}
val properties = Foo::class.getProperties()
结果
val com.demo.Foo.bar: kotlin.Int
val com.demo.Foo.baz: kotlin.String
var com.demo.Foo.boo: kotlin.String?
如何修改此扩展方法以仅返回在主构造函数中声明的属性?
预期结果
val com.demo.Foo.bar: kotlin.Int
【问题讨论】:
标签: kotlin