在 Kotlin 中是否有 java 反射 foo.getClass().getFields()
的等价物?我发现只有知道字段名称才能访问字段,但我想以通用方式处理字段。
最佳答案
您是否想要“支持字段”中的字段或“属性”中的字段... Kotlin 真的只有属性。您可以使用以下方法为某些类(class)获取这些:
MyTest::class.memberProperties
// or
MyTest::class.declaredMemberProperties
来自 Java Class<T>
, 使用 kotlin
获取 Kotlin 的扩展属性 KClass<T>
您可以从中继续:
someClassOfMine.javaClass.kotlin.memberProperties
这需要 kotlin-reflect
依赖项也将添加到您的构建和类路径中。您会在 KClass
上找到许多其他有用的东西
对于属性背后的 secret 支持字段,使用 Java 反射需要您自担风险。
关于reflection - kotlin反射获取字段列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28391889/