java8 Optional 使用方法详解
本文总结一下java8 Optional 使用方法详解。
一、Optional介绍
Optional类是 Java 8 中引入的一个用于解决空指针异常
的类,它可以表示一个值存在或不存在。
二、Optional类的使用
1. 创建Optional类
创建Optional类有两种方式:
- 使用
Optional.of()
方法创建一个包含非空值
的 Optional 对象。 - 使用
Optional.empty()
方法创建一个空
的 Optional 对象。
Optional<String> optionalWithValue = Optional.of("Hello");
Optional<String> optionalEmpty = Optional.empty();
2. Optional类的常用方法
isPresent()
:判断 Optional 对象中是否包含值。ifPresent(Consumer<? super T> consumer)
:如果 Optional 对象中存在值,则执行指定的操作
。orElse(T other)
:如果 Optional 对象中存在值,则返回该值
;否则返回指定的默认值
。orElseGet(Supplier<? extends T> supplier)
:如果 Optional 对象中存在值,则返回该值;否则根据提供的Supplier 函数生成一个值
。orElseThrow(Supplier<? extends X> exceptionSupplier)
:如果 Optional 对象中存在值,则返回该值;否则抛出指定的异常
。
Optional<String> optional = Optional.of("Hello");
if (optional.isPresent()) {
System.out.println("Value: " + optional.get());
}
optional.ifPresent(value -> System.out.println("Value: " + value));
String valueOrDefault = optional.orElse("Hello1");
String valueOrGenerated = optional.orElseGet(() -> "Hello1");
String valueOrThrow = optional.orElseThrow(() -> new RuntimeException("not present"));
3. Optional类的链式调用
map() 、 flatMap() 等方法返回的Optional类的实例,所以可以进行链式调用,避免多层嵌套的判断。
Optional<String> optional = Optional.of("Hello");
Optional<String> upperCaseOptional = optional.map(String::toUpperCase);
- 不建议在集合中使用 Optional ,因为集合本身已经提供了
空值的处理方法
。- 避免过度使用 Optional ,只在
需要明确表示值可能为空
的情况下使用。
总结
本文总结了java8 Optional 使用方法。
希望对看到本文的你有帮助。
上一篇 java 方法引用 |
记得点赞收藏哦!!!
| 下一篇 java——Lambda表达式 |