gpt4 book ai didi

java - 可以在可选的任何东西中

转载 作者:行者123 更新时间:2023-12-05 09:26:42 25 4
gpt4 key购买 nike

我发现实现了这段代码(使用这部分代码的方法是返回Optional<File>,必须添加这部分代码以验证值是否正确并且可以保存大小写):

if (!CaseChecker.checkValues(case)) {
return Optional.of(new File("FALSE"));
}

当我问那个人,他为什么要退回这样的东西。答案是“可选的可以包含任何值”。老实说我不同意这一点,因为 Optional 的类型是出于某种原因。所以我想确认 Optional 是否真的可以是任何东西,如果是,那么写 Optional 类型的原因是什么。

最佳答案

Optional 的全部意义在于避免返回虚假值的情况(例如 null,或者从 String.indexOf 返回 -1 以指示它没有找到任何东西),让调用者有责任知道什么是假的,并知道要检查它。返回 Optional 让调用者知道它需要检查是否返回了有效结果,并且它消除了调用者代码需要知道哪些返回值无效的负担。

Optional 绝不意味着作为虚假值的包装器。

是的,您可以退还任何东西。 API 不会阻止您做无意义的事情。

还要考虑到 flatMap 不知道如何处理这个奇怪的东西,它会将内容视为非空。所以现在你可以如何使用这个值是有限的。你有一个多阶段验证过程,你可以使用 flatMap 将操作链接在一起来处理它,但是这个假文件使它变得更难。它限制了您的选择。

返回Optional.empty()如果您没有要返回的有效值。

关于java - 可以在可选的任何东西中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73474951/

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