gpt4 book ai didi

java - 空 `Optional` 类型的返回值应该是什么?

转载 作者:行者123 更新时间:2023-11-30 02:04:26 27 4
gpt4 key购买 nike

我有一系列方法,其中一个方法的可选返回类型如下

public Optional<Employee> find(long id) {

for (Employee employee : this.employees) {
if (employee.getId() == id) {
return Optional.of(employee);
}
}
return Optional.empty();
}

public Employee findlById(long id) {

return find(id);
}

这里第二个方法 findById 会出现编译错误,因为它自己的返回类型和 find 方法的返回类型不同。

现在,如果我检查该值并找到它,我就可以返回该对象。但是如果 Optional 对象为空,我应该返回什么?

public Employee findlById(long id) {

Optional<Employee> employee = find(id);
if (employee.isPresent()) {
return employee.get();
}
return // what??;
}

根据我阅读的互联网资源,您永远不应该为 Optional 对象返回 null。所以我很困惑,如果不是null而不是什么

最佳答案

如果您返回 Optional输入,然后你可以使用 Optional.empty()喜欢

return Optional<Employee>.empty();

但是由于您的返回类型是 Employee您的选择是将返回类型更改为 Optional<Employee>并使用上面的 return null; 抛出某种Exception .

关于java - 空 `Optional` 类型的返回值应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51759012/

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