在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方法 : 
 如果值是一个集合,可以使用flatMap方法将多个Optional对象合并为一个。
- 
使用orElseThrow方法抛出异常 : 
 如果值不存在,可以使用orElseThrow方法抛出一个异常。
- 
使用stream方法处理值 : 
 可以使用stream方法将Optional对象转换为Stream对象,以便进行复杂的操作。例如,计算长度或过滤特定字符。
- 
使用ifEmpty方法处理空值 : 
 可以使用ifEmpty方法在值不存在时执行某个操作。例如,设置一个默认值或抛出一个异常。
- 
使用or方法合并两个Optional对象:如果当前Optional对象为空,则返回另一个Optional对象。如果当前Optional对象不为空,则返回当前Optional对象。这可以用于合并两个可能都为空的Optional对象。