在Java中,Optional
?是一个可以为null的容器对象。如果值存在则isPresent()方法返回true,调用get()方法会返回该对象。
使用Optional可以有效地防止NullPointerException。
下面是一些使用Optional的技巧:
创建Optional对象:
Optional<String> optional = Optional.of("bam");
如果值存在则调用方法:
可以使用?ifPresent
?方法在值存在时执行某个操作。
optional.ifPresent((s) -> System.out.println(s.charAt(0)));
检查值是否存在:
使用?isPresent()
?方法检查值是否存在。
if (optional.isPresent()) {
System.out.println(optional.get());
} else {
System.out.println("No value");
}
使用orElse或orElseGet方法提供默认值:
如果值不存在,可以使用?orElse
?或?orElseGet
?方法提供一个默认值。
String str = optional.orElse("fallback");
使用map和filter方法:
可以使用?map
?和?filter
?方法对值进行操作。例如,将一个字符串转换为大写。
Optional<String> upperOptional = optional.map((s) -> s.toUpperCase());
flatMap
?方法将多个Optional对象合并为一个。orElseThrow
?方法抛出一个异常。stream
?方法将Optional对象转换为Stream对象,以便进行复杂的操作。例如,计算长度或过滤特定字符。ifEmpty
?方法在值不存在时执行某个操作。例如,设置一个默认值或抛出一个异常。