Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Kotlin中,如何拥有可用于实体的数据类_Kotlin - Fatal编程技术网

在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:

我有一个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或其他人创建一个。我如何做到这一点,仍然没有空字段

我是否可以在数据类中使用不可为空的字段,并且仍然具有默认的无参数构造函数?

使用无参数,它会为您创建一个空构造函数

如果您使用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 = "" // ...
    )
}