问题描述:
java.lang.NullPointerException
问题分析:
1、使用stream().sorted()、stream().max()、stream().min()时,用于比较的字段值出现为null的情况,导致报错。
List<String> list = new ArrayList<>(Arrays.asList(null, "1"));
String max = list.stream().max(Comparator.comparing(x -> x)).orElse("");
String min = list.stream().min(Comparator.comparing(x -> x)).orElse("");
list = list.stream().sorted(Comparator.comparing(x -> x)).collect(Collectors.toList());
解决办法:
事先将字段值为null的数据过滤掉。
List<String> list = new ArrayList<>(Arrays.asList(null, "1"));
list = list.stream().filter(x -> x != null).collect(Collectors.toList());
String max = list.stream().max(Comparator.comparing(x -> x)).orElse("");