学习来源:《Java8 实战》 Gabriel Urma 微信读书
文章目录
- Optional API
- 代码
- 参考文献
Optional API
方法 | 描述 |
empty | 放hi一个空的Optional对象 |
filter | 返回满足谓词的对象 |
flatMap | 待续 |
get | 返回封装的对象 |
ifPresent | 如果该值存在就执行该值的方法调用 否则什么都不做 |
map | |
of | Optional |
ofNullable | 如果对象为空就返回一个空的值 |
orElse | 如果为空返回函数值 |
OrElseGet | 如果不存在 就返回一个指定接口生成的值 |
orElseThrow | 顾名思义 |
代码
辅助类
public class Person {
private String name;
private Integer age;
public Person(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
测试类
public void test1() throws Exception {
// 1. 创建
Optional<String> tom = Optional.ofNullable("Tom");
// 2. 如果确定不不为空就用下面这个
Optional<String> t = Optional.of("Tom");
// 1. 如果不为空就返回该值 为空就返回lambda表达式的值
System.out.println(tom.orElseGet(()-> {
return "Git";
}));
// 2. 如果存在就返回该值 否则返回抛出异常
String s = tom.orElseThrow(() -> new Exception());
// 3. 如果不存在 就重新创建值
Optional.ofNullable(12).orElse(100);
/**
* filter
* map
* flatMap
*/
// 1. 如果该对象的属性不满足既定要求即返回空值
Optional.ofNullable(100).filter(val -> {return val>10;});
// 2. 如果存在获取对象的值
Person person = new Person("Tom",15);
Optional<Person> person1 = Optional.of(person);
person1.map(u -> u.getName()).orElse("s");
// 3. flatMap 要求返回值也是Optional 类型
person1.flatMap(v -> Optional.ofNullable(v.getName()));
// 1. 判断对象是否存在
System.out.println(tom.isPresent());
// 2. 如果存在就对该值进行加工处理
tom.ifPresent(value->{value = value + " Hello";});
}