Optional 类的简介
Optional类的是来自谷歌Guava的启发,然后就加入到Java8新特性中去了。Optional类主要就是为子决解价值亿万的错误,空指针异常。
Optional类其实就是一个可选值的包装类,说明这个类即可以有空值,也可以有对象。
Optional 简单使用
这个类也会报空指针异常:of(),empty()
@Test public void OptionalTest() { //报:NullPointerException //of()方法,是在传入null的时候,报错。 Optional<String> gg = Optional.of(null); System.out.println(gg.get()); //创建一个空的Optional类 Optional<Object> empty = Optional.empty(); //报:NullPointerException //empty取的时候,才会报错 System.out.println(empty.get()); }
ofNullable()方法的使用。
@Test public void OptionalTest2() { //创建一个对象 //两个都可以用 //都不会报空指针异常 //Sku sku = null; Sku sku = new Sku(); //如果不确定是不是空的时候可以用这个方法 Optional<Sku> optionalSku = Optional.ofNullable(sku); //判断optional里面的值是不是空的 if (optionalSku.isPresent()) { //如果不是空的就可以取出来 Sku sku1 = optionalSku.get(); System.out.println(sku1); //如果是null的时候,不运行 //如果不是null的时候,会运行,输出一个对象的地址 } }
orElse()的使用的方法
@Test public void optionalTest3() { Sku sku = new Sku(); //getSkuName()没有值。 Optional<String> optionalSku = Optional.ofNullable(sku.getSkuName()); //上面getSkuName()里面没有值的时候,才输出orElse的值。 String gg = optionalSku.orElse("上面的getSkuName里面没有值!"); System.out.println(gg); //输出:上面的getSkuName里面没有值 }
ifPresent()的使用方法
@Test public void optionalTest4() { Sku sku = new Sku(); //getSkuName()没有值。 Optional<String> optionalSku = Optional.ofNullable(sku.getSkuName()); //如果有值的时候,可以直接输出,但是如果没有值的时候,不会输出,并且不会报错。 optionalSku.ifPresent(System.out::println); } //无输出
更多的Optional类的使用:
个人愚见,如有不对,恳请扶正!
来源:https://www.cnblogs.com/xdtg/p/12014085.html