gpt4 book ai didi

java - Java 8 getter 是否应该返回可选类型?

转载 作者:bug小助手 更新时间:2023-10-28 10:39:46 25 4
gpt4 key购买 nike

Optional Java 8 中引入的 type 对很多开发者来说是个新鲜事物。

是返回 Optional<Foo> 的 getter 方法键入代替经典 Foo一个好的做法?假设该值可以是null .

最佳答案

当然,人们会做他们想做的事。但我们在添加此功能时确实有一个明确的意图,它 不是 是通用的 Maybe 类型,就像很多人希望我们这样做一样。我们的目的是为库方法返回类型提供一种有限的机制,在这种情况下,需要一种明确的方式来表示“无结果”,而使用 null 则极有可能导致错误。

例如,您可能永远不应该将它用于返回结果数组或结果列表的东西;而是返回一个空数组或列表。您几乎不应该将它用作某事物的字段或方法参数。

我认为经常使用它作为 getter 的返回值肯定会被过度使用。

Optional 没有任何错误,应该避免它,这不是许多人希望的那样,因此我们相当担心过度使用的风险。

(公共(public)服务公告:NEVER 调用 Optional.get 除非你能证明它永远不会为空;而是使用安全方法之一,例如 orElseifPresent。回想起来,我们应该调用 get 类似 getOrElseThrowNoSuchElementException 或者更清楚地表明这是一个高度危险的方法首先破坏了 Optional 的全部目的。吸取的教训。(更新:Java 10 具有 Optional.orElseThrow(),在语义上等同于 get(),但是谁的名字更合适。))

关于java - Java 8 getter 是否应该返回可选类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26327957/

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