1.User对象
public class User {
private String name;
private Integer age;
}
2.test方法
public static void main(String[] args) throws InterruptedException {
List<User> list = new ArrayList<User>();
User u = new User();
u.setName("a");
list.add(u);
// 如果age的值为Null,这里会报java.lang.NullPointerException
Map<String, Object> userMap1 = list.stream().collect(Collectors.toMap(User::getName, User::getAge));
// 第一种解决方法
Map<String, Object> userMap2 = list.stream()
.collect(Collectors.toMap(User::getName, e -> e.getAge() == null ? "" : e.getAge()));
System.out.println(JSON.toJSONString(userMap2));
// 第二种解决方法
Map<String, Object> userMap3 = list.stream().collect(Collectors.toMap(User::getName, o -> getValue(o)));
System.out.println(JSON.toJSONString(userMap3));
}
private static Object getValue(User o) {
if (ObjectUtils.equals(o.getAge(), null)) {
return "";
} else {
return o.getAge();
}
}