В Kotlin, как у меня есть класс данных, который я могу использовать для сущности - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть класс данных 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, или Джексона, или кто-то другой.Как мне это сделать, и при этом все еще не обнуляемые поля?

Могу ли я использовать ненулевые поля с классом данных и при этом иметь конструктор по умолчанию без аргументов?

1 Ответ

0 голосов
/ 14 февраля 2019

Используйте плагин компилятора no-arg , который создает для вас пустой конструктор.

Если вы используете 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 = "" // ...
    )
}

Я не рекомендовал бы это, хотя, потому что если может заставить вас определить произвольные значения по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...