![](/img/trans.png)
[英]Kotlin: Public getter returns immutable list but private getter should return mutable list
[英]Kotlin custom getter and mutable list
我是 Kotlin 的新手,我目前并不完全知道如何正确使用 getter 和 setter。 我想写一个 class 产品。 在这个 class 中是一个变量valueOfAllItems
,它从 stockList 中获取数量并将其与 basePrice 相乘。
这是我目前的方法,我认为这是不正确的:
class Product(val basePrice: Double, val stockList: MutableList<Stock>) {
val valueOfAllItems: Double = 0.0
get() {
var value = field
for (item in stockList) {
value = item.quantity.toDouble() * basePrice
}
return value
}
}
这里是库存 class:
class Stock(val quantity: Int, val good: boolean)
请帮忙。
编辑:这是最终解决方案(感谢@AyTee 和@Tenfour04)
class Product(val basePrice: Double, val stockList: MutableList<Stock>) {
val valueOfAllItems: Double
get() {
return stockList.map{it.quantity.toDouble() * basePrice}.sum()
}
}
您覆盖每个计算中的值。 您需要将其添加到总和中。 代替
value = item.quantity.toDouble() * basePrice
和
value += item.quantity.toDouble() * basePrice
或者你可以用更简单的方式得到它
val valueOfAllItems = stockList.map{ it.quantity.toDouble() * basePrice }.sum()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.