在Kotlin中,如何拥有可用于实体的数据类
我有一个Kotlin数据类:在Kotlin中,如何拥有可用于实体的数据类,kotlin,Kotlin,我有一个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:
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或其他人创建一个。我如何做到这一点,仍然没有空字段
我是否可以在数据类中使用不可为空的字段,并且仍然具有默认的无参数构造函数?使用无参数,它会为您创建一个空构造函数
如果您使用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 = "" // ...
)
}
不过我不建议这样做,因为if可能会强制您定义任意默认值。我看到Kotlin JPA插件和其他插件使用该插件,但我使用的是iBatis,它没有特殊的实体注释。谢谢你。
data class Somebody(
var id: String,
var created: Date
// ...
) {
constructor() : this(
id = "", created = Date(), address1 = "" // ...
)
}