首先先介绍一下Optional,Optional就是一个容器对象。
个人理解,在日常开发中对其使用最多就是处理对象的空指针情况。
Optional有三种构造方法:
ofNullable:这种允许传入的对象为null
empty:这种创建出来的就是一个为空的对象
of:这种不允许传入为null,如果为null会抛出空指针异常异常
常用的方法有:
orElse 如果值存在就将其值返回,否则返回传入的默认值
orElseGet 如果值存在就将其值返回,否则返回一个由指定的Supplier接口生成的值
orElseThrow 如果值存在就将其值返回,否则返回一个由指定的Supplier接口生成的异常
filter 如果值存在并且满足提供的谓词,就返回包含该Optional对象;否则返回一个空的Optional对象
flatMap 如果值存在,就对该值执行提供的mapping函数,将mapping函数返回值用Optional封装并返回,否则就返回一个空的Optional对象
map 如果值存在,就对该值执行提供的mapping函数调用,将mapping函数返回值用Optional封装并返回
get 如果值存在就返回该Optional对象,否则就抛出一个 NoSuchElementException异常
ifPresent 如果值存在就对该值执行传入的方法,否则就什么也不做
isPresent 如果值存在就返回true,否则就返回false