温馨提示×

温馨提示×

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

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

如何创建 java Optional

发布时间:2026-09-19 06:56:17 来源:亿速云 阅读:98 作者:小樊 栏目:编程语言

在 Java 中,Optional 是 java.util 包下用来避免 null 指针异常的容器类。下面按常见使用方式说明如何创建 Optional。


1. 创建空的 Optional

Optional<String> opt = Optional.empty();

表示一个不存在的值。


2. 创建包含非空值的 Optional(推荐)

Optional<String> opt = Optional.of("hello");

⚠️ 如果传入 null,会立即抛出 NullPointerException。


3. 创建可能为 null 的 Optional(最常用)

String str = null;
Optional<String> opt = Optional.ofNullable(str);
  • str != null → 包含值
  • str == null → 空 Optional

✅ 实际开发中最推荐使用


4. 从 Optional 中取值

Optional<String> opt = Optional.of("hello");

// 方式一(不推荐,仍可能抛异常)
String s = opt.get();

// 方式二(推荐)
String s = opt.orElse("default");

// 方式三(延迟计算)
String s = opt.orElseGet(() -> "default");

// 方式四(为空时抛自定义异常)
String s = opt.orElseThrow(() -> new RuntimeException("空值"));

5. 判断是否有值

if (opt.isPresent()) {
    System.out.println(opt.get());
}

// 更推荐
opt.ifPresent(value -> System.out.println(value));

6. 链式处理(推荐写法)

Optional.ofNullable(user)
        .map(User::getName)
        .filter(name -> name.length() > 3)
        .ifPresent(System.out::println);

7. 使用建议 ⚠️

  • ✅ 用于返回值,不要用于类字段
  • ❌ 不要滥用 Optional.get()
  • ❌ 不要用 Optional 作为参数类型(一般不推荐)

如果你愿意,我也可以给你:

  • Optional 与 Stream 的结合
  • Optional 在 Spring / JPA 中的用法
  • Optional 常见坑点总结
向AI问一下细节

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

AI
助
手