我正在用我写的 Kotlin 尝试这段代码(我是 Kotlin 的初学者)。我希望收到"真",但是即使listo
包含它,我也收到了"假"。这是我的代码:
fun main(args: Array<String>) {
class product(var product: String, var productName: String)
val listo = arrayListOf(
product("shirt", "yoyo")
)
val testing = product("shirt", "yoyo")
if (testing in listo) {
println("True")
} else {
println("False")
}
}
如何解决这个问题?任何帮助都非常感谢
product
类不会重写equals
方法,因此它正在执行对象实例比较,并且两个列表包含不同的对象。
您可以使用自动生成equals
方法data class product(...
声明product
,该方法将比较两个字符串属性,这意味着listo
将包含testing
。它还生成了一堆其他方便的方法。
https://kotlinlang.org/docs/reference/data-classes.html