【问题标题】:How to establish getter & setter for secondary constructor in data class for kotlin?如何在 kotlin 的数据类中为辅助构造函数建立 getter 和 setter?
【发布时间】:2020-03-23 20:50:14
【问题描述】:

我需要一个带有两个不同构造函数数据类,如图所示。但是如何在 Kotlin 中为 data class 的辅助构造函数 做 getter & setter?我尝试了多次更改,无法弄清楚。在下面的 sn-p 中,我没有为 get()set()

获得正确的 import
data class user(var phone: String) {
    constructor(phone: String, name : String) : this(phone) {
        var name: String = name
        get()= field
        set(value) {
            field = value
        }
      }
    }

【问题讨论】:

    标签: kotlin methods get set data-class


    【解决方案1】:

    看来您需要两个构造函数,一个只需要“电话”参数,另一个需要“电话”和“姓名”参数。总体而言,无论使用哪个构造函数,您的数据类都将具有两个属性:phonename。您可以通过以下方式完成此操作:

    data class User(var phone: String) {
    
        var name: String = ""
    
        constructor(phone: String, name: String) : this(phone) {
            this.name = name
        }
    }
    

    但是,由于这是 Kotlin,您应该 prefer default parameter values over overloaded functions/secondary constructors:

    data class User(var phone: String, var name: String = "")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-10
      • 2013-07-30
      • 1970-01-01
      • 2020-10-01
      • 2017-03-05
      • 2011-07-10
      相关资源
      最近更新 更多