Java8 特性-Optional对象

 Java8 特性-Optional对象

  • Java应用中最常见的bug就是空值异常。在Java 8之前,Google Guava引入了Optionals类来解决NullPointerException,从而避免源码被各种null检查污染,以便开发者写出更加整洁的代码。Java 8也将Optional加入了官方库;
  • Optional仅仅是一个容易:存放T类型的值或者null。它提供了一些有用的接口来避免显式的null检查,任意对象的容器;
  • 如果Optional实例持有一个非空值,则isPresent()方法返回true,否则返回false;orElseGet()方法,Optional实例持有null,则可以接受一个lambda表达式生成的默认值;map()方法可以将现有的Opetional实例的值转换成新的值;orElse()方法与orElseGet()方法类似,但是在持有null的时候返回传入的默认值;
  • Optional对象of与ofNullable方法均用于存值,ofNullable则允许null值存在,很好的滤空效果;
Optional fullName = Optional.ofNullable( null );
        System.out.println(fullName.isPresent());
        System.out.println(fullName.orElseGet(()->"orElseGet -> [none]"));
        System.out.println(fullName.map( s -> s).orElse( "map -> Hey Optional!" ));


        System.out.println("---------------------------------------------------------------------");
        Optional str = Optional.of(null);
        System.out.println(str.orElse( "orElse" ));
        System.out.println(str.orElseGet( () -> "orElseGet"));

输出结果:

Java8 特性-Optional对象_第1张图片

 

chenyb 随笔记录,只为方便自己学习

2019-10-09

你可能感兴趣的:(Java8学习)