Должен проверить метод возвращаемое значение

1

Почему в этом случае я получаю сообщение "Должен проверить возвращаемое значение метода"?

if(!qty.contains("@"))
      mgm.addOrder(date, Integer.parseInt(qty));
else
{
      qty.replace("@", "");
      mgm.addOrder(date, Integer.parseInt(qty));
      mgm.startNew();
}

Я получаю это сообщение: qty.replace("@", "");

Оператор if проверял, есть ли @, что еще мне нужно, чтобы сделать его идеальным?

  • 0
    qty.replace("@", "") самом деле не меняет qty . qty = qty.replace("@", ""); если вы ничего не делаете с результатом, а не, например, qty = qty.replace("@", ""); ,
  • 0
    @AndyTurner опубликовать ответ с этим объяснением и тем, как должен выглядеть код.
Теги:

2 ответа

5
Лучший ответ

String#replace возвращает новую String представляющую результаты операции replace. Вы должны вернуть результаты в String, иначе они будут потеряны

qty = qty.replace("@", "");
  • 0
    Большое спасибо вам обоим!
  • 0
    Рад, что это могло помочь ...
4

qty.replace("@", "") фактически не изменяет qty. Это не-op, если вы ничего не делаете с результатом.

Вы должны сделать что-то вроде:

qty = qty.replace("@", "");

Если вы этого не сделаете, следующее выражение будет NumberFormatException, потому что qty все еще имеет знак @:

Integer.parseInt(qty)
  • 0
    Большое спасибо вам обоим!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню