Конвертировать объект класса в карту - PullRequest
0 голосов
/ 06 марта 2019

У меня есть класс, полный строк, как

data class TestClass (
var par1: String?,
var par2: String?,
var par3: String?
)

И я хочу преобразовать его в Map, где Key и Value - String. Каков наилучший способ сделать это в Котлине?

1 Ответ

1 голос
/ 06 марта 2019

Вы можете использовать отражение Kotlin, чтобы реализовать это, добавить библиотеку kotlin-reflect в путь к классам приложения и использовать такой код:


fun TestClass.asMap() = this::class.declaredMemberProperties
        .map {
          it as KProperty1<TestClass, Any?>
          it.name to it.get(this).toString()
        }.toMap()

Мы приводим элемент declaredMemberProperties из проекции звезды ктип с Any? вместо.Дело не проверено из-за стирания типов JVM, но все равно требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...