Java在if else循环一行后设置值

时间:2018-12-21 06:12:33

标签: java if-statement ternary-operator conditional-operator

如何在一行中设置其他值?

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 :(得分:9)

您可以简单地做到:

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

答案 1 :(得分:3)

您可以这样编码:

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

此外,您可以在方法中使用assert以避免出现其他情况。

答案 2 :(得分:2)

您可以简单地使用三元运算符来设置值,而不必创建临时变量“ cValue”,仅用于比较

String amount = myJSON.optString("cValue")
mySavings.setCouponValue((amount != null && !amount.isEmpty()) ? Double.parseDouble(amount) : 0.0);

答案 3 :(得分:0)

如果您使用的是Java 8或更高版本,则可以这样选择:

mySavings.setCouponValue(Optional.ofNullable(amount).map(cValue -> !cValue.isEmpty() ?  Double.parseDouble(cValue):0).orElse(0.0));

答案 4 :(得分:0)

为了完整性

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

如果您真的致力于编写令人恐惧的“一个班轮”,则很有用。在这种情况下,请避免引入cValue变量。