gpt4 book ai didi

java - 为什么 Optional 不实现 Supplier

转载 作者:搜寻专家 更新时间:2023-10-31 08:25:14 25 4
gpt4 key购买 nike

我们都知道Optional<T>有一个方法 T get() ,那么为什么它不实现 Supplier<T>

如果碰巧没有任何原因,如果 Oracle 将它实现到 Java 的 future 版本中,它会破坏任何以前的代码吗?

最佳答案

这是因为它们意味着不同的东西。

Optional<T>是一个可以提供也可以不提供的参数,一个可以提供也可以不提供的返回值,或者一个可以赋值也可以不赋值的变量。如果它有值,你可以使用 .get()检索它。 .get()如果做错了什么,即如果您在值不存在时调用它,则可能会抛出异常。

A Supplier<T>是一个函数对象,它将根据需要提供一个值(或空值)。不像 Optional<T> , Supplier.get() 是合理的每次调用它时返回不同的值。如果Supplier.get()抛出一个异常,这意味着它的实现出了问题,而不是调用者犯了错误。

关于java - 为什么 Optional<T> 不实现 Supplier<T>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46782459/

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