kotlin - Kotlin 获取声明的成员属性值
问题描述
Class#getDeclaredField
Kotlin中的等效代码是什么?我正在寻找一个纯粹的 Kotlin 实现......也许是一种反思?
class Test {
public static final String TEST = "Hello";
public static void main(String[] args) {
System.out.println(
Test.class.getDeclaredField("TEST").get(Test.class));
}
}
解决方案
首先,添加此依赖项以避免运行时错误
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>1.3.50</version>
</dependency>
然后:
val member = Test::class.members.find { it.name=="TEST" }
println(member)
println(member.call(Test())
输出:
val generic.Test.TEST: kotlin.String
Hello
成员类型是Kcallable<*>?
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-callable/index.html
推荐阅读
- node.js - 是否可以批量读取mongoDB?
- sql - 即使在 where in 子句中的条件为空,如何返回结果集
- html - 通过achor标签从chrome打开firefox?
- c - Uncrustify:如何在声明或分配变量之前添加新行?
- sql-server - 在使用 CASE 或 CHOOSE 等条件函数时,如何确定每位员工的加班时间?
- javascript - SwiperJS - 使用函数初始化后禁用幻灯片
- javascript - 即使与应用程序建立连接,Mongodb Atlas 集合中也没有收到数据
- c++ - 为什么我在STM32上不能通过SPI读取寄存器?
- css - 以正确的方式增加模式中的 Bootstrap 4 标签宽度
- javascript - 如何在一行 html 中包含 2 个段落