私はKotlinとの新たなんだと私は、この新しい言語に小さなJavaプロジェクトを手直ししてみてください。例えば、私は私のプロジェクトではMongoDBを使用して、私はクラスを持っている:Kotlin - NULL可能フィールドのNULL以外のゲッター
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
}
は私が原因空のコンストラクタの(var id: ObjectId?
)としてNULL値可能id
フィールドをマークする必要があります。別のクラスからこのフィールドにアクセスしようとすると、null以外のチェックを使用する必要があります:thePlayer.id!!
。しかし、私のアプリケーションのロジックは、id
フィールドがnullでないことです(mongoはPlayerのインスタンスを作成し、すぐにidフィールドを設定します)。そして私はどこでも非nullチェックをしたくありません。
var id: ObjectId? = null
get(): ObjectId = id!!
私もIDのいくつかのスタブを作成し、コンストラクタでそれを使用することができますが、これは汚いハックのようになります。
val DUMMY_ID = new ObjectId("000000000000000000000000");
問題を解決するための回避策がありますか?
プット ':
また、このような
lateinit
として、あなたの変数を宣言しますそれは基本的には、方法を気にしないで、私はそれが初期化されることを確認します。 – succcubbus[これと同様のプロblem休止状態と溶液中](https://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-hell)を助けますか? – miensol