最近项目换到JDK8,优化下以前写的代码
原代码
if(StrUtil.isNotEmpty(phsilYyht.getZlqkids())){
List<String> zlqkidsList = Arrays.asList(phsilYyht.getZlqkids().split(","));
mmap.put("zlqkidsList", zlqkidsList);
}else{
mmap.put("zlqkidsList", otherIdsList);
}
新代码
if(Optional.ofNullable(phsilYyht.getZlqkids()).isPresent()){
mmap.put("zlqkidsList",Arrays.stream(phsilYyht.getZlqkids().split(",")).collect(Collectors.toList()));
}else{
mmap.put("zlqkidsList", otherIdsList);
}
但是感觉并没简化多少,再新的:
Optional.ofNullable(aa).ifPresent(val -> mmap.put("a",
Arrays.stream(aa.split(",")).collect(Collectors.toList())));
if(!(Optional.ofNullable(aa).isPresent())){
mmap.put("d", new ArrayList<>());
}
说明
1.optional:为了不抛出NullPointerException,我们需要些 (obj!= null) ,为此JDK 8引入了 Optional 类,用于避免空指针的出现,节省大量(obj!=null)的判断.
小弟有个问题,好比上面的代码,我除了加if以外,有没有什么更简洁的办法.
参考资料