常用方法总结
- empty : 创建一个空的Optional对象
- of:为非null的值创建一个Optional。of方法通过工厂方法创建Optional类。需要注意的是,创建对象时传入的参数不能为null。如果传入参数为null,则抛出NullPointerException。因此不经常用。
- ofNullable:为指定的值创建一个Optional,如果指定的值为null,则返回一个空的Optional。
- isPresent: 检查一个Optional对象中是否有值,只有值非空才返回true,否则返回false。
- ifPresent:如果Optional实例有值则为其调用consumer,否则不做处理
- get:如果Optional有值则将其返回,否则抛出NoSuchElementException。因此也不经常用。
- orElse:如果有值则将其返回,否则返回指定的其它值。经常用于判断返回默认值的场景;
- orElseGet:orElseGet与orElse方法类似,区别在于得到的默认值。orElse方法将传入的字符串作为默认值,orElseGet方法可以接受Supplier接口的实现用来生成默认值
- orElseThrow:如果有值则将其返回,否则抛出supplier接口创建的异常。
- filter: 接收一个函数式接口 ,如果有值并且满足断言条件返回包含该值的Optional,否则返回空Optional。
- map:如果有值,则对其执行调用mapping函数得到返回值。如果返回值不为null,则创建包含mapping返回值的Optional作为map方法返回值,否则返回空Optional。
- flatMap:如果有值,为其执行mapping函数返回Optional类型返回值,否则返回空Optional。