私は Kotlin が初めてで、小さな Java プロジェクトをこの新しい言語に作り直そうとしています。プロジェクトでmongodbを使用しており、次のようなクラスがあります。
class PlayerEntity {
constructor() {} //for mongodb to create an instance
constructor(id: ObjectId, name: String) { //used in code
this.id = id
this.name = name
}
@org.mongodb.morphia.annotations.Id
var id: ObjectId? = null
var name: String? = null
}
空のコンストラクターのため、id
フィールドを nullable ( ) としてマークする必要があります。var id: ObjectId?
別のクラスからこのフィールドにアクセスしようとすると、null 以外の check: を使用する必要がありますthePlayer.id!!
。しかし、私のアプリケーションのロジックは、id
フィールドが null になることはありません (mongo は Player のインスタンスを作成し、すぐに id フィールドを設定します)。そして、どこでもnull以外のチェックをしたくありません。
null 以外のゲッターを作成しようとしましたが、コンパイルされません。
var id: ObjectId? = null
get(): ObjectId = id!!
id のスタブを作成してコンストラクターで使用することもできますが、これは汚いハックのように見えます。
val DUMMY_ID = new ObjectId("000000000000000000000000");
問題を解決するための回避策はありますか?