gpt4 book ai didi

java - Optional 用于方法的输入参数

转载 作者:行者123 更新时间:2023-11-29 10:08:41 25 4
gpt4 key购买 nike

我创建了一个由特定类实现的通用接口(interface)。看起来像:

public interface KingdomElementService<T> {

public T findById(Long id);

public T save(Optional<T> object);

public void update(T t);

}

我的 IntelliJ 在保存时大喊大叫,写着“Optional is used as a parameter.”。我理解这样的逻辑,即接受可能存在和可能不存在的事物是很奇怪的。为什么我考虑这样做是为了重写一些

 if(something){
do();
}
else{
throw new Expression();
}

something.orElseThrow(Expression::new);

现在我想知道我使用 Optional 的解决方案在这里是否有点矫枉过正。你怎么认为?我应该考虑改回去吗?

最佳答案

Java 语言架构师都认为 Optional 应该只用作返回类型。这是为了表示返回类型可能是 null。所以要小心。

可选 作为输入参数将要求您始终检查参数是否存在,添加一些检查。如果你想添加任何验证,你也可以不带 Optional 。将输入参数标记为可选没有额外的值(value)。

此外,将参数传递给另一个接受 Optional 的方法的调用方法必须包装 Object 并发送。这是开销。

我没有考虑边缘情况。

编辑:从“Java 语言非常清晰”更改为更真实的内容。

关于java - Optional<T> 用于方法的输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54667140/

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