Optional类介绍
Optional是一个没有子类的工具类,Optional是一个可以为null的器官对象。它的作用主要是为了解决避免null检查,防止NullPointerException。
Optional类的创建方式:
Optional.of(T t); 创建一个Optional实例
Optional.empty(); 创建一个空的Optional实例
Optional.ofNullable(T t); 若t不为null,创建Optional实例,否则创建空实例
Optional类的常用方法:
isPresent(): 判断是否包含值,包含值返回true,不包含值返回false
get(): 如果Optional有则将其返回,否则抛出NoSuchElementException
orElse(T t): 如果调用对象包含值,返回该值,否则返回参数t
orElseGet(Suplier s): 如果调用对象包含值,则返回值,否则返回 s 获取值
map(Function f): 如果有值对其处理,并返回处理后的Optional,否则返回Optional.empty()
/**
* 创建一个Optional对象
* of:只能传入一个具体的值,不能传入空
* ofNullAble: 既可以传入集体值,也可以传入null
* empty: 存入的就是null
*/
public void test01(){
//创建
Optional<String> op1 = Optional.of("LX");
Optional<String> op2 = Optional.ofNullable(null);
Optional<String> op3 = Optional.empty();
//使用
}
public String test02(){
Optional<String> op1 = Optional.of("LX");
Optional<String> op2 = Optional.ofNullable(null);
/**
* 存在的时候做什么
* ifPresent: 如果有值就调用参数
*/
op1.ifPresent( s->{
System.out.println("有值:"+s);
});
return op1.map(s->
s.toLowerCase()).map(s->
s.toLowerCase()).orElse("null");
}