Kotlinのリフレクションを使ってプロパティ情報を取得する
やってることは簡単な内容なのですが、日本語の情報があまりなかったのでメモ程度に記録しようかと。
あるクラスのKClassを取得しプロパティ名と中身を取り出してみるというものです。
import kotlin.reflect.full.memberProperties fun main(args: Array<String>) { val myBook = Book( name = "Hello Kotlin", page = 120, isbn = "978-4865940398" ) myBook::class.memberProperties.forEach { println("${it.name}: ${it.call(myBook)}") } } class Book( val name: String, val page: Long, val isbn: String )
実行結果は以下の通り。
isbn: 978-4865940398 name: Hello Kotlin page: 120