1.对象的判空:
1)常见的写法
Person person = new Person();
String name = "";
if(person != null){
name = person.getName();
}
System.out.println(name);
2)上面的写法并不优雅,此时使用Oplitonal可以让代码更加简洁
Person person = new Person();
String name = Optional.ofNullable(person).map(Person::getName).orElse("");
System.out.println(name);
3)如果要是判断为空时直接抛出异常:
Person person = new Person();
String name = Optional.ofNullable(person).map(Person::getName).orElseThrow(() -> {
throw new RuntimeException("name is empty");
});
System.out.println(name);
2.对于List的判空:
1)第一种场景的常见的写法:
List<String> departments = weCompanyChatProxyResource.queryDepartment(departmentId, accessToken, 1);
if(CollectionUtils.isNotEmpty(departments)){
return departments.get(0);
}
第一种场景的Oplitonal替代写法:
List<String> departments = weCompanyChatProxyResource.queryDepartment(departmentId, accessToken, 1);
String department = Optional.ofNullable(departments).map(x -> x.get(0)).orElse("");
2)第二种场景的常见写法:
List<String> departments = weCompanyChatProxyResource.queryDepartment(departmentId, accessToken, 1);
if(CollectionUtils.isEmpty(departments)){
return Collections.empty();
}
return departments;
第二种场景的优雅写法:
List<String> departments = weCompanyChatProxyResource.queryDepartment(departmentId, accessToken, 1);
return Optional.ofNullable(departments).orElse(Collections.empty());
3.如果对象不存在,直接报错,停止执行
常见的写法:
Person person = new Person();
if(person == null){
throw new RuntimeException("对象不存在");
}
更改代码可以优化如下:
Person person = new Person();
Assert.notNull(person, "对象不存在");
同样对列表也有类似的函数进行判断:
List<Person> personList = new ArrayList<>();
Assert.notEmpty(personList, "不为空");
本文介绍Java中使用Optional简化对象及List判空操作的方法,并提供直接抛出异常的处理方式。
1483

被折叠的 条评论
为什么被折叠?



