Как установить sh getter & setter для вторичного конструктора в классе данных для kotlin? - PullRequest
0 голосов
/ 23 марта 2020

Мне нужен класс данных с двумя разными конструкторами , как показано. Но как мне сделать getter & setter для вторичного конструктора из класса данных в Kotlin? Я попробовал несколько изменений, не в состоянии понять это. В приведенном ниже фрагменте я не получаю права import для get () и set ()

data class user(var phone: String) {
    constructor(phone: String, name : String) : this(phone) {
        var name: String = name
        get()= field
        set(value) {
            field = value
        }
      }
    }

1 Ответ

1 голос
/ 24 марта 2020

Похоже, вам нужны два конструктора, один из которых требует только аргумента «телефон», а другой - аргумента «телефон» и «имя». В целом ваш класс данных будет иметь два свойства независимо от того, какой конструктор используется: phone и name . Вы можете выполнить sh это следующим образом:

data class User(var phone: String) {

    var name: String = ""

    constructor(phone: String, name: String) : this(phone) {
        this.name = name
    }
}

Однако, поскольку это Kotlin, вам следует предпочесть значения параметров по умолчанию перегруженным функциям / вторичным конструкторам :

data class User(var phone: String, var name: String = "")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...