我有一个Kotlin数据类:
data class Somebody(var id: String, var created: Date, var address1: String, var address2: String,
var city: String, var county: String, var hitCount: Integer, var lat: Double,
var lon: Double, var lookupSuccessful: Boolean, var name: String,
var neghiborhood: String, var partialMatch: Boolean, var searchedAddress: String,
var state: String, var zip4: String, var zip5: String, var active: Boolean,
var instructions: String, var maxValue: Integer) {
}
问题是,此类需要一个0参数构造函数,因此我可以让iBatis或JPA或Jackson或其他人创建一个。我该怎么办却仍然没有可为空的字段?
我可以在数据类中使用不可为空的字段,并且仍然具有默认的无参数构造函数吗?
答案 0 :(得分:2)
使用无参数compiler plug-in会为您创建一个空的构造函数。
如果使用Gradle,请将其添加到build.gradle文件中:
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version"
}
}
apply plugin: "kotlin-noarg"
如果您不想使用它,也可以这样做:您可以定义一个辅助构造函数,该构造函数使用默认值初始化属性。
data class Somebody(
var id: String,
var created: Date
// ...
) {
constructor() : this(
id = "", created = Date(), address1 = "" // ...
)
}
我不建议这样做,因为如果这样做可能会迫使您定义任意默认值。