问题:
1.在对应用lamda表达式的stream对list进行解决时,如果list是null将会有让人好受的NPE
2.在每个list.stream()前都if(list!=null)又不够优雅
3.在对list中对象进行操作时也得if()防止NPE,代码显得臃肿

优雅解决:
1.在操作前对list自身进行判空解决

应用Optional进行判空解决,如下:Optional.ofNullable(allList).orElse(new ArrayList<>()).stream()在list为null时,返回一个空list对象,否则执行stream后的操作* orElse:如果值为空,返回一个对象* orElseGet:如果值为空,执行一段lambda并返回一个对象

2.在对list中对象操作时判空解决

//去除list列表中的空对象list1.stream().filter(Objects::nonNull).map();

3.在对两个list进行addall()操作时,判空解决

Optional.ofNullable(list1).orElse(new ArrayList<>()).addAll(list2);list的判空addall