温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么给 Optional 设默认值

发布时间:2026-08-31 19:53:46 来源:亿速云 阅读:89 作者:小樊 栏目:编程语言

在 Java 里,Optional 本身只是“可能为空的值的容器”,给它“设默认值”通常分两种情况:


1️⃣ 取值时给默认值(最常用)

✅ orElse

String value = optional.orElse("default");
  • 不管 Optional 是否为空,orElse 里的默认值都会先创建
  • 适合:默认值很轻量(如字符串、常量)

✅ orElseGet(推荐,懒加载)

String value = optional.orElseGet(() -> "default");
  • 只有 Optional 为 empty 时才执行 Supplier
  • 适合:默认值创建有成本(new 对象、查 DB)

✅ orElseThrow

String value = optional.orElseThrow(() -> new RuntimeException("not found"));
  • 为空就抛异常

2️⃣ 给 Optional 本身“设默认值”(包装成新 Optional)

如果你想 让 Optional 永远不为 empty:

Optional<String> safeOpt = optional.isPresent()
        ? optional
        : Optional.of("default");

或更简洁:

Optional<String> safeOpt = optional.or(() -> Optional.of("default"));

✅ Java 9+ 支持 or()


3️⃣ 常见错误 ❌

optional = Optional.of("default"); // 错误:不会改变原 optional

Optional 是不可变对象,不能直接“修改”。


总结一句话 ✅

取值用 orElse / orElseGet,合并用 or()

如果你是在 Stream、Map、Spring、Jackson 等具体场景用,可以告诉我,我给你更贴切的写法。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手