class DiscountProduct(
productName: String,
basePrice: Double,
salesPrice: Double,
description: String) :
Product(productName, basePrice, salesPrice, description) {
val discount = mutableListOf(DiscountType.SUMMER, DiscountType.SHORT, DiscountType.ALLAWAY, DiscountType.NODISC)
}
open class Product(
val productName: String,
var basePrice: Double,
open var salesPrice: Double,
val description: String) {...}
enum class DiscountType(disc:Int) {
SUMMER(20),
SHORT(10),
ALLAWAY(50),
NODISC(0)
}
谢谢你!
在这一行中,有两个错误
override var salesPrice: Double = salesPrice*(100-discount)%
首先,您试图从100中减去一个对象列表(在您的示例中是discounttype
)。这样是行不通的。你应该说出你到底想怎么做。例如编写另一个函数。类似这样的事情:
fun getDiscount(discounts : List<DiscountStatus>): Int{
return 100 - discounts.sumBy { it.disc }
}
或者你想怎么打折。无论如何,编译器不知道如何处理不同的类型(number和一个discountType
对象列表)。
第二,在语句结尾处添加一个%
符号。在Kotlin中有这样一个运算符,但使用的方式不同。您可能希望将您的折扣
应用于销售价格
。同样,您必须告诉编译器您到底想要怎样做。编写函数:
fun applyDiscount(price: Double, discount: Int): Double {
return price * (discount.toDouble() / 100.0)
}
或者类似的东西。最后把这一切合二为一:
val discount = mutableListOf(DiscountType.SUMMER, DiscountType.SHORT, DiscountType.ALLAWAY, DiscountType.NODISC)
override var salesPrice: Double = applyDiscount(salesPrice, getDiscount(discount))
请你自己做整个计算,把我的答案当作一个例子。你应该学习Kotlin的基础知识,从算术运算开始。https://kotlinlang.org/docs/reference/keyword-reference.html#operators-and-special-symbols
问题内容: 我有一个非常简单的persistance.xml文件: 而且有效。 但是,当我删除元素时,应用程序看不到实体(所有类都带有注释)。 是否有自动扫描类的机制? 问题答案: 您可以使用persistence.xml 。从Java EE 5教程中 : 该文件定义了一个名为的持久性单元,它使用JTA感知数据源。所述和元素指定管持久类:实体类,可嵌入类和超类映射。该元素指定JAR文件都包含持久化
我试图将我的应用程序从Java转换为静态编程语言。 我使用了Android Studio内置转换器并修复了它生成的大部分错误。 对于科特林来说,这一次让我很难受: 我得到了这个用Java编写的类,并进行了转换,显然没有任何错误,这有助于我在回收视图中管理项目点击: 在main活动中,转换后在函数中设置如下: IDE给我以下错误: 类型不匹配: 必需:ItemClickSupport。OnItemC
我使用android Studio制作了一个静态编程语言MultiPlatform Mobile项目,导入SQLDelight后遇到以下错误: 我回答了这个问题,但他们提到的一切我都做对了。在一个文件一个文件地查看之后,我没有找到我在哪里声明了那个版本,于是我决定将我的项目与其中一个示例项目进行比较。 再次查看这些文件后,我发现我在我的应用程序等级中使用了SQLDelightVersion1.5.
我知道有很多像这样的问题,但没有一个给我提供正确的答案,所以我来这里。 下面是我得到的XML: 下面是相关的java类:
//我的主类中的解马歇尔代码 例外