文章目录
- 前言
- 一、上代码
- 1. isPresent
- 2. ifPresent
- 3. map
- 4. orElse
- 5. orElseGet
- 6. orElseThrow
- 7. optional
- 总结
前言
Java中最常见的异常就是NullPointerException,空指针的出现不应该影响业务的正常执行,我们应该尽量避免,把异常控制在编码阶段,jdk8为我们提供了Optional,可以让我们更加灵活地处理空指针异常。
一、上代码
1. isPresent
isPresent判断值是否为空,返回布尔值,get方法获取值
public static void isPresent(Optional optional){if(optional.isPresent()){System.out.println(optional.get());}}
2. ifPresent
ifPresent和isPresent类似,它需要一个lamda表达式的参数,参数value就是get方法获取到的值
public static void ifPresent(Optional<String> optional){optional.ifPresent(value -> {System.out.println(value);});}
3. map
map处理完成后,返回Optional对象
public static void map(Optional<String> optional){Optional<String> ret = optional.map(String::toUpperCase);isPresent(ret);}
4. orElse
orElse如果值存在则返回当前值,不存在则返回orElse方法接收到的参数,作用类似于三目表达式
public static void orElse(Optional<String> optional){String value = optional.orElse("Default");System.out.println(value);}
5. orElseGet
orElseGet和orElse差不多,如果值存在则返回当前值,不存在则返回lamda表达式的返回值
public static void orElseGet(Optional<String> optional) {String value = optional.orElseGet(() -> {return "Default";});System.out.println(value);}
6. orElseThrow
orElseThrow值存在则继续执行,值为空的时候则抛出异常
public static void orElseThrow(Optional<String> optional) {optional.orElseThrow(NullPointerException::new);ifPresent(optional);}
7. optional
Optional构造方法是私有的,内部提供了三个方法返回Optional对象
public static void optional() {// 返回一个空的Optional类型;Optional.empty();// 使用这个方法,值不可以为空,否则抛NullPointerExceptionOptional.of("value");// 使用这个方法,值可以为空,如果为空返回Optional.emptyOptional.ofNullable(null);}
总结
回到顶部