为了账号安全,请及时绑定邮箱和手机立即绑定

将 Class 的对象转换为 Map

将 Class 的对象转换为 Map

米脂 2022-07-20 16:51:22
我有一堂课,充满了字符串之类的data class TestClass (var par1: String?,var par2: String?,var par3: String?)我想将它转换为 Map,其中 Key 和 Value 是字符串。在 Kotlin 中执行此操作的最佳方法是什么?
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

您可以使用 Kotlin 反射来实现它,将kotlin-reflect库添加到应用程序类路径并使用如下代码:



fun TestClass.asMap() = this::class.declaredMemberProperties

        .map {

          it as KProperty1<TestClass, Any?>

          it.name to it.get(this).toString()

        }.toMap()


我们将declaredMemberProperties元素从星形投影转换为 with 类型Any?。由于 JVM 类型擦除,该案例未被选中,但仍然需要。


查看完整回答
反对 回复 2022-07-20
  • 1 回答
  • 0 关注
  • 362 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信