2015-03-27 3 views
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

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

+0

@ AndyTurner опубликует ответ с этим объяснением и как выглядит код. –

ответ

5

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

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

Спасибо вам обоим! – ArthurV

+0

Рад, что это может помочь ... – MadProgrammer

4

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

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

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

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

Integer.parseInt(qty) 
+0

Большое спасибо вам обоим! – ArthurV

Смежные вопросы