Как увеличить нулевой элемент в классе Groovy - PullRequest
0 голосов
/ 01 октября 2019
CartEntry cartEntry = new CartEntry(quantity: null)
Integer quantity = 1
cartEntry?.quantity += quantity

Я получил java.lang.NullPointerException: Невозможно выполнить ноль + -1.

Какое решение является лучшим для этого кода? У меня есть:

if (cartEntry? .Quantity) {cartEntry.quantity + = количество}

Но, вероятно, это не Groovy способ

1 Ответ

1 голос
/ 01 октября 2019

Одним из решений было бы добавить пользовательский метод получения к вашему классу CartEntry:

    Integer getQuantity() {
        quantity ?: 0
    }

Таким образом, если количество равно нулю, оно возвращает 0

Другим было бы изменить ваш +=на

cartEntry.quantity = (cartEntry.quantity ?: 0) + quantity

Или, как говорит Даггетт, добавьте метод к вашему классу CartEntry для увеличения количества, и вы можете обрабатывать нули там

...