Kotlin: определение типа не выполнено. Ожидаемое несоответствие типа: предполагаемый тип - пара но пара ожидалось - PullRequest
1 голос
/ 25 мая 2020

Я хочу вызвать следующую функцию addToCart () в основном, но появляется такая ошибка. Могу ли я узнать, как мне изменить свой код? Спасибо!

    fun addToCart(){
    println("Productname : ")
    var nameInput= readLine() ?: "-"
    println("Num of $nameInput ")
    var num = readLine()!!.toInt()
    var got : Product? = warehouse.getProductByName(nameInput)
    shoppingCart.addToList(nameInput, num)

}

class ShoppingCart () {
            private val productAndQuantityList = mutableListOf<Pair<Product, Int>>()
            fun addToList(name: String, quantity: Int){
                productAndQuantityList.add(Pair(name, quantity))
            }
        ....
        }

1 Ответ

1 голос
/ 25 мая 2020

Я думаю, вам не нужно проверять null перед вызовом add.

fun addProductToCart(shoppingCart: ShoppingCart, warehouse: Warehouse) {
    println("Product name: ")
    var productName_E = readLine() ?: "-"
    println("No. of $productName_E ")
    var num = readLine()?.toInt()
    var got: Product? = warehouse.getProductByName(productName_E)
    if (num != null && got != null) {
        shoppingCart.productAndQuantityList.add(Pair(first = got, second = num))
    }
}

Ваш класс ShoppingCart должен быть чем-то вроде класса ниже.

class ShoppingCart {

    val productAndQuantityList = mutableListOf<kotlin.Pair<Product, Int>>()
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...