【java8新特性】Optional类
Optional 类是一个可以为null的容器对象,可以让我们快速定位NullPointException。1.方法of()用于创建非空对象,该方法要求传入的参数不能为空,否则抛NullPointException,我们直接就可以知道这个对象是空的@Testpublic void test1() {Optional<Employee> opt...
·
Optional 类是一个可以为null的容器对象,可以让我们快速定位NullPointException。
1.方法of()用于创建非空对象,该方法要求传入的参数不能为空,否则抛NullPointException,
我们直接就可以知道这个对象是空的
@Test
public void test1() {
Optional<Employee> optional = Optional.of(null);
Employee employee = optional.get();
System.out.println(employee);
}
2.由于传入的参数可能为null,则可以用Optional的ofNullable()方法创建对象,如果参数为null,则创建一个空对象。
@Test
public void test3() {
Optional<Employee> optional = Optional.ofNullable(null);
Employee employee = optional.orElseGet(()->new Employee() );
System.out.println(employee);
}
3.需求:一个man可能会有一个女神,如果有女神则返回女神姓名,没有返回一个默认name
传统做法:
public String getGodnessName(Man man) {
if (man != null) {
Godness godness = man.getGodness();
if (godness !=null) {
return godness.getName();
}
}
return "小离";
}
@Test
public void test5() {
Man man = new Man();
String godnessName = getGodnessName(man);
System.out.println(godnessName);
}
用Optional类来处理(代码清爽了一些)
public String getGodnessName2(Optional<NewMan> man) {
return
man.orElse(new NewMan())//如果man是null则新创建一个对象
.getGodness()
.orElse(new Godness("小离"))//如果man没有女神则设置一个默认女神的名字
.getName();
}
@Test
public void test5() {
Optional<Godness> godness = Optional.ofNullable(new Godness("小妹"));
Optional<NewMan> op = Optional.ofNullable(new NewMan(godness));
String str = getGodnessName2(op);
System.out.println(str);
}
更多推荐
已为社区贡献2条内容
所有评论(0)