正如标题所示,我想遍历单例对象的属性。我尝试使用 kotlin-reflect,因为我目前没有找到其他方法。
object Test {
const val a = "String"
const val b = "Another String"
}
Test::class.declaredMemberProperties.forEach {
println("${it.name}: ${it.get(Test)}")
}
但不幸的是,这会导致以下异常:
Exception in thread "main" java.lang.IllegalArgumentException: Callable expects 0 arguments, but 1 were provided.
...
at com.example.MainKt.main(main.kt:25) // same line as println statement
...
似乎get()
功能有问题(name
属性解决得很好)。是否有更好的方法(可能没有反射)或一些解决方案来访问单例中的那些预编译常量?