gpt4 book ai didi

java - 使用 Optional 验证输入

转载 作者:搜寻专家 更新时间:2023-10-31 20:16:43 24 4
gpt4 key购买 nike

我有一个 CreateOrder 实例,其中包含一些 String、Integer 和 Double 状态。当我在我的 JUnit 测试中为 CreateOrder 创建一个对象并将其发送过来时,我能够使用可选 API 验证字符串属性而不是整数,如下所示 -

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

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

喜欢aoid ,我还想将 ofNullable() 用于整数,但无法弄清楚如何。我这样做的目的是让我的代码免受 NullPointerExceptions 的影响。因此我想让用户成为强大的 Optional对于 IntegerDouble .我是 Java 8 的新手,如果我应该使用 OptionalInt 会感到困惑或 Optional<Integer> ?如果Optional<Integer> ,如何像我对 String 使用它一样使用它?

最佳答案

Integer.parseInt(each.getQty())

足够安全,因为如果 each.getQtynull,您最终会得到一个 NumberFormatException,这应该是您的行为我正在尝试将 String 解析为 Integer 但不确定。

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

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

对于 amount 也类似

double amount = Optional.ofNullable(each.getPrice().getAmount())
.map(Double::parseDouble)
.orElse(Double.NaN);

关于java - 使用 Optional 验证输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54124427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com