Java устанавливает значения после цикла if else в одной строке - PullRequest
0 голосов
/ 21 декабря 2018

Как мне добиться установки значения внутри, если еще в одной строке?

String amount = myJSON.optString("cValue")
double cValue = (amount != null && !amount.isEmpty()) ? Double.parseDouble(amount) : 0;
if (cValue > 0) {
    mySavings.setCouponValue(cValue);
} else {
    mySavings.setCouponValue(0.0);
}

Ответы [ 5 ]

0 голосов
/ 21 декабря 2018

Для полноты

mySavings.setCouponValue(Math.max(0.0, cValue));

Полезно, если вы действительно посвятили себя написанию ужасных "одних строк".В этом случае, избегая введения переменной cValue.

0 голосов
/ 21 декабря 2018

в качестве альтернативы, если вы используете Java 8 или выше, вы можете сделать так:

mySavings.setCouponValue(Optional.ofNullable(amount).map(cValue -> !cValue.isEmpty() ?  Double.parseDouble(cValue):0).orElse(0.0));
0 голосов
/ 21 декабря 2018

Вы можете просто использовать троичный оператор для установки значения, не создавая временную переменную "cValue", просто для сравнения

String amount = myJSON.optString("cValue")
mySavings.setCouponValue((amount != null && !amount.isEmpty()) ? Double.parseDouble(amount) : 0.0);
0 голосов
/ 21 декабря 2018

Вы можете кодировать так:

mySavings.setCouponValue((cValue > 0 ? cValue : 0.0));

Далее вы можете использовать assert в своем методе, чтобы избежать, если еще.

0 голосов
/ 21 декабря 2018

Вы можете просто сделать:

mySavings.setCouponValue((cValue > 0 ? cValue : 0.0));
...