Property must be initialized or be abstract

まだまだ全然Kotlin初心者の私です…。

たとえばなんですけど、次のようにメンバー変数を定義したい時に

@Parcelize
class User(val id: Int, val name: String) :Parcelable {

    val reading:String //ここで冒頭のエラー
  val age:Int //ここで冒頭のエラー

}

ってなりますよね。

var reading:String? = null

ってすれば直るんですが。

またはコンストラクタにreading とかageとか入れてもいいです。しかし、呼び出すときに全部入れなきゃいけないの??って思ってました。

これ、

init{}

でやれば、定義の時点でvalでもいけるのに後で気づきました。(;^ω^)

次のような感じです。

@Parcelize
class User(val id: Int, val name: String) :Parcelable {

    val reading:String

    init{
        reading = "hogehoge"
    }
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です