KotlinでClassに定義されているプロパティ名を参照する
realmなんかで例えばモデルのキーとかでソートをするときはモデルのキーを参照するのだけど、そのときにそのプロパティ名を参照できないかを探したらできたのでそのメモ
参照方法
例えばこんなモデルが合ったとする
1 2 3 |
open class Game : RealmObject() { open var startDate: Date = Date() } |
こんな感じで書いたら参照できた
1 |
val results = realm.where(Game::class.java).findAll().sort(Game::startDate.name) |
Game::startDate.name
と、nameをつけることでstringに変換できました。
まとめ
“”でくくって文字列でそのまま書いてしまう人が多いと思うが、これを使えば例えばプロパティ名が変わったときにコンパイル時に間違いに対応できるのでおすすめ。