java – 使用Optional验证输入

前端之家收集整理的这篇文章主要介绍了java – 使用Optional验证输入前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个CreateOrder实例,其中包含一些String,Integer和Double状态.当我在JUnit测试中为CreateOrder创建一个对象并将其发送时,我能够使用Optional API验证String属性而不是Integer,如下所示 –

String aoid = Optional.ofNullable(createOrder.getAltorderid()).orElse("");

int quantity = Integer.parseInt(each.getQty());
double amount = Double.parseDouble(each.getPrice().getAmount());

就像aoid一样,我也希望用户使用整数()来表示整数,但是无法弄清楚如何.我这背后的意图是使我的代码从NullPointerExceptions安全,因此我想让Integer和Double的强大的可选用户.我是Java 8的新手,如果我应该使用OptionalInt或Optional< Integer>?如果可选<整数>,如何使用它像我用于String?

最佳答案
Integer.parseInt(each.getQty())

因为如果each.getQty为null,你最终会得到一个NumberFormatException,当你试图将String解析为Integer并且不确定它时,它应该是行为.

另一方面,对于null为null的值,您可以默认为0:

int quantity = Optional.ofNullable(each.getQty())
                       .map(Integer::parseInt)
                       .orElse(0);

类似于金额

double amount = Optional.ofNullable(each.getPrice().getAmount())
        .map(Double::parseDouble)
        .orElse(Double.NaN);
原文链接:https://www.f2er.com/java/437530.html

猜你在找的Java相关文章