Kotlin - 访问和使用构造函数参数

Kotlin - accessing and using constructor parameters

我在我的界面中的 class 中有这个构造函数(它应该更像是一个静态结构,但现在没问题)

class BinData {
        constructor(card_id: Int,
                    from: Int,
                    to: Int)
    }

我创建了一个实例,我想以映射的形式使用构造函数中的所有属性作为函数的参数

val binData = IConfiguration.BinData(2, 222100, 272099)
memoryConfig.binAdd(1, binData)

当然,当我在 binAdd() 中打印该行时,我得到了 Bin 添加:{1=control.app.activities.IConfiguration$BinData@8bd0008} 这只是对象哈希

处理这个问题的合理方法是什么? 我想到了创建一个像 BinData.getdata() 这样的方法,它将 return 参数映射,但我真的不确定是不是这样。

如有任何帮助,我将不胜感激。谢谢

构造函数参数只能是属性,如果它们在主构造函数中,在 { } 之前声明。如果您的 class 是数据 class 或者如果您覆盖 toString() 以手动定义此行为,toString() 将仅列出 属性 值。

您应该这样声明您的 class:

data class BinData(
    val card_id: Int,
    val from: Int,
    val to: Int
)

您只是声明了一个接收 3 个参数的构造函数,但并未指定这些参数是属性。我建议您使用这些属性设置主构造函数

class BinData(val card_id: Int,
              val from: Int,
              val to: Int)

请注意,我将这些属性指定为 val,假设它们是不可变的。如果您需要修改它们,通过将它们定义为 var

使它们可变

如果您的 class 仅用于保存值而不是逻辑,请考虑使用 data class