Kotlin自定义的getter和mutable list。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin自定义的getter和mutable list。相关的知识,希望对你有一定的参考价值。
我是Kotlin的新手,我目前并不完全知道如何正确使用getter和setter。我想写一个类产品。在这个类中,有一个变量 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 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()
}
}
答案
你在每次计算中都会覆盖这个值,你需要把它加到sum.replace中。
value = item.quantity.toDouble() * basePrice
与
value += item.quantity.toDouble() * basePrice
或者你也可以用更简单的方式获得
val valueOfAllItems = stockList.map{ it.quantity.toDouble() * basePrice }.sum()
以上是关于Kotlin自定义的getter和mutable list。的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin类与对象 ① ( 成员属性 | Kotlin 自动为成员字段生成 getter 和 setter 方法 | 手动设置成员的 getter 和 setter 方法 | 计算属性 )
Kotlin类的初始化 ① ( 成员属性 | Kotlin 自动为成员字段生成 getter 和 setter 方法 | 手动设置成员的 getter 和 setter 方法 | 计算属性 )
mutable.PriorityQueue 为具有更多属性的类自定义排序
错误记录Kotlin 编译报错 ( Smart cast to ‘Xxx‘ is impossible, because ‘xxx‘ is a mutable property ... )