gpt4 book ai didi

java - 这是好的代码和 Java 选项的使用吗

转载 作者:行者123 更新时间:2023-12-01 17:52:07 25 4
gpt4 key购买 nike

这样的代码风格和Option的使用是否良好?这似乎不对,因为该方法返回泛型,但主体不使用泛型返回。另外,由于 IF 语句的原因,“味道”有点不好。

public Optional<MyObjectType> readData() {
MyObjectType[] myArray = // Will not be null, but maybe Size 0.
if(myArray.length > 0)
return Optional.of(myArray[0]);

return Optional.of(null);
}

在客户端我有:

public void clientCode() {
Optional<CurrencyPointData> oData = readCurrency(Currency.ADA);
if(oData.isPresent()) {
CurrencyPointData data = oData.get();
// Use data object
}
}

这似乎也没有比正常的 if(oData == null) 好多少检查。

因此,这段代码看起来很垃圾,所以我不应该使用Optional吗?

最佳答案

您的客户端代码展示了可选的用途。

它鼓励代码在调用 get() 之前检查 isPresent(),突出显示可能没有值的问题,这与简单地使用 CurrencyPointData 不同。 code> 没有 Optional,则返回值是否可以为 null 是未定义的。当然,您可以记录方法是否可以返回null,但这在代码中并不明显,而且我们都知道人们很少详细阅读文档。

使用Optional,您明确表示该值可能会丢失。

就是为什么Optional比简单的null检查更好。

关于java - 这是好的代码和 Java 选项的使用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48935192/

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