Optional类隶属于java。util包中
Optional类是一个可以为null的容器对象,它的出现很好的解决空指针异常。
简而言之,这个类的出现,相当于Java8提供了一个封装好的容器,在使用的时候可以放心大胆的处理null的逻辑或异常。需要把值放入容器中,后续的取值操作和其他逻辑,使用其提供的Api即可方便简单的处理null指针的情况。
Optional类的源码数量并不多,有时间还是可以看看的,先看看3个初始化容器内容的静态方法,(empty,of,ofNullable),由于所有构造函数都是private的,所以只能使用工厂方法来获取Optional的实例
在类中第一行便是定义了一个静态常量EMPTY,泛型的使用的是通配符?,意思是可以传入任意类型,并赋值为空参构造实例,第二行定义为final的value,则是用于存储放入容器中的值Commoninstancefor{codeempty()}。privatestaticfinalO?EMPTYnewOptional();Ifnonnull,ifnull,indicatesnovalueispresentprivatefinalTprivateOptional(){this。}静态方法empty
这个方法作用很简单,就是将类加载时初始化的EMPTY静态常量强转成传入的泛型T,然后返回强转后的值,可以调用该方法返回一个值为null的Optional容器publicstaticTOptionalTempty(){SuppressWarnings(unchecked)OptionalTt(OptionalT)EMPTY;}
使用方式,声明一个value类型为String的空容器OptionalStringemptyOptional。empty();静态...
(全文)