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
我在我的界面中的 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