Optional
是 Java 8 中引入的一个类,用于处理可能为空的值。它提供了一种优雅的方式来避免空指针异常,并在值存在时进行处理。下面是一些 Optional
的常用方法:
-
创建 Optional 对象:
-
Optional.empty()
: 创建一个空的 Optional 对象。 -
Optional.of(value)
: 创建一个包含指定非空值的 Optional 对象。如果 value 为 null,则会抛出 NullPointerException。 -
Optional.ofNullable(value)
: 创建一个 Optional 对象,如果 value 为 null,则创建一个空的 Optional 对象;否则,创建一个包含指定值的 Optional 对象。
-
-
判断值是否存在:
-
isPresent()
: 如果 Optional 对象包含非空值,则返回 true;否则返回 false。 -
isEmpty()
: 如果 Optional 对象为空,则返回 true;否则返回 false。
-
-
获取值:
-
get()
: 获取 Optional 对象中的值。如果 Optional 对象为空,则会抛出 NoSuchElementException 异常。
-
-
条件处理:
-
ifPresent(Consumer<? super T> consumer)
: 如果 Optional 对象中有值,则执行指定的操作。 -
ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)
: 如果 Optional 对象中有值,则执行指定的操作;否则执行指定的空操作。
-
-
值转换:文章来源:https://www.toymoban.com/news/detail-467612.html
-
map(Function<? super T,? extends U> mapper)
: 如果 Optional 对象中有值,则将其通过指定的映射函数转换为另一个值,并返回一个包含转换后值的 Optional 对象。 -
flatMap(Function<? super T,Optional<U>> mapper)
: 如果 Optional 对象中有值,则将其通过指定的映射函数转换为另一个 Optional 对象,并返回该 Optional 对象。
-
-
默认值:文章来源地址https://www.toymoban.com/news/detail-467612.html
-
orElse(T other)
: 如果 Optional 对象为空,则返回指定的默认值 other。 -
orElseGet(Supplier<? extends T> supplier)
: 如果 Optional 对象为空,则使用指定的供应函数获取一个默认值。 -
orElseThrow(Supplier<? extends X> exceptionSupplier)
: 如果 Optional 对象为空,则抛出由指定的异常供应函数生成的异常。
-
import java.util.Optional;
public class OptionalExample {
public static void main(String[] args) {
String name = "John";
Optional<String> optionalName = Optional.of(name);
// 判断值是否存在
System.out.println("Is value present? " + optionalName.isPresent());
// 获取值
String retrievedName = optionalName.get();
System.out.println("Retrieved value: " + retrievedName);
// 条件处理
optionalName.ifPresent(value -> System.out.println("Value is present: " + value));
// 值转换
Optional<Integer> nameLength = optionalName.map(String::length);
nameLength.ifPresent(length -> System.out.println("Name length: " + length));
// 默认值
String defaultValue = optionalName.orElse("Default");
System.out.println("Default value: " + defaultValue);
String fallbackValue = optionalName.orElseGet(() -> {
// 可以执行复杂的逻辑来获取默认值
return "Fallback";
});
System.out.println("Fallback value: " + fallbackValue);
// 抛出异常
String retrievedName2 = optionalName.orElseThrow(() -> new RuntimeException("Value not present"));
}
}
到了这里,关于Java Optional的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!