java8 - Optiaonal学习
Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。
Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。
Optional 类的引入很好的解决空指针异常。
public static void main(String[] args) { //声明String 变量为null String variable = null; //1 Optional 判空返回默认数据 System.out.println(Optional.ofNullable(variable).orElse("Other")); //2 Optional 判空获取get System.out.println(Optional.ofNullable(variable).orElseGet(()->"tiezhu.com")); //3 Optional 判空抛出异常 Optional.ofNullable(variable).orElseThrow(()->new RuntimeException("Throw an exception from here")); //================================================================================================================== //新建List集合 List<String> list = null; System.out.println(Optional.ofNullable(list).orElse(Lists.newArrayList("Hello World!"))); System.out.println(Optional.ofNullable(list).orElseGet(() -> Lists.newArrayList("com.tiezhu"))); Optional.ofNullable(list).orElseThrow(()-> new RuntimeException("Throw an exception from here")); //Object or Collection 判空处理 Optional<List<String>> optional = Optional.ofNullable(list); if(optional.isPresent()){ System.out.println("optional -- is not null"); }else{ System.out.println("optional -- is null"); } //================================================================================================================== DrugstoreVo drugstoreVo = null; Optional<DrugstoreVo> optional1 = Optional.ofNullable(drugstoreVo); if(optional.isPresent()){ System.out.println("optional1 -- is not null"); }else{ System.out.println("optional1 -- is null"); } // 对象的属性并不会被作为判断条件 DrugstoreVo drugstoreVo1 = new DrugstoreVo(); Optional<DrugstoreVo> optional2 = Optional.ofNullable(drugstoreVo1); if(optional2.isPresent()){ System.out.println("optional2 -- is not null"); }else{ System.out.println("optional2 -- is null"); } }

浙公网安备 33010602011771号