加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用Optional验证输入

发布时间:2020-12-15 01:09:57 所属栏目:Java 来源:网络整理
导读:我有一个CreateOrder实例,其中包含一些String,Integer和Double状态.当我在JUnit测试中为CreateOrder创建一个对象并将其发送时,我能够使用Optional API验证String属性而不是Integer,如下所示 String aoid = Optional.ofNullable(createOrder.getAltorderid())

我有一个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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读