저는 Kotlin에 익숙하며이 새로운 언어로 작은 Java 프로젝트를 다시 작성하려고합니다. 예를 들어, 나는 내 프로젝트에서 MongoDB를 사용하고 난 클래스가 :Kotlin - nullable 필드에 null이 아닌 getter
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 필드를 즉시 설정합니다). 그리고 나는 모든 곳에서 non-null 체크를하고 싶지 않습니다.
var id: ObjectId? = null
get(): ObjectId = id!!
나는 또한 ID에 대한 몇 가지 그루터기를 만들고 생성자에서 사용할 수 있지만,이 더러운 해킹과 같습니다
val DUMMY_ID = new ObjectId("000000000000000000000000");
문제를 해결할 수있는 방법이 있습니까?
넣어':
또는이 같은
lateinit
로 변수를 선언 , 기본적으로 의미하는 방법을 신경 쓰지 마라. 그러나 내가 초기화 될 것을 보장한다. – succcubbus[이 유사 프로 최대 절전 모드 및 솔루션의 흠집] (https://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-hell) help? – miensol