サンプルとしてはハードコーディングの方が見やすかったりします。
でも、実際にアプリを作るときはタイプセーフなコーディングをした方がタイプミスによるバグの発生を抑えられたり、保守が楽になったりします。
entityクラス
data class Memo( var memoId: Int = 0, var body: String = "", var createDate: String? = null, var updateDate: String? = null )
ハードコーディング例
fun get(id: Int): Memo? { return mRealm.where(Memo::class.java).equalTo("memoId", id).findFirst() }"memoId"の部分がハードコーディング(直打ち文字列入力)になっています。
タイプセーフ例
fun get(id: Int): Memo? { return mRealm.where(Memo::class.java).equalTo(Memo::memoId.name, id).findFirst() }"memoId"ではなく、
Memo::memoId.nameになっています。
entity名称::プロパティ名.nameとすることでタイプセーフに"memoId"(文字列)を取得できます。
bodyの場合は、Memo::body.nameですね。
この記事が参考になれば幸いです。
日々、プログラムを書いたり・Twitterで出来事を発信したりしています。
Twitterのフォロワーも募集中です。
@cloverkizuna
今後ともよろしくお願いします。