代码之家  ›  专栏  ›  技术社区  ›  mikeb

在Kotlin中,如何为实体使用数据类

  •  0
  • mikeb  · 技术社区  · 6 年前

    我有一个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) {
    
    }
    

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

    0 回复  |  直到 6 年前
        1
  •  2
  •   Willi Mentzel user670265    6 年前

    使用no参数 compiler plug-in

    如果你用Gradle,把这个加到你的构建.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可能会强制您定义任意的默认值。