#java #android #kotlin
#java #Android #kotlin
Вопрос:
У меня есть класс, полный строк типа
data class TestClass (
var par1: String?,
var par2: String?,
var par3: String?
)
И я хочу преобразовать его в карту, где ключ и значение являются строковыми. Каков наилучший способ сделать это в Kotlin?
Комментарии:
1. Какие свойства вы пытаетесь преобразовать в карту? Пожалуйста, уточните ваши вопросы, поскольку неясно, что вы пытаетесь сделать.
Ответ №1:
Для реализации этого можно использовать отражение 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, но он все еще требуется.