Open DolphaGo opened 2 years ago
toMap은 다음 메서드로 매핑을 하게 된다.
여기서 value를 보면 requireNonNull인 것을 알 수 있는데, 여기에서 NPE가 터진다.
물론, map의 value에는 nul을 넣을 수 있다.
@Test void test() { Map<String, String> map = new HashMap<>(); map.put("test", null); System.out.println("map.get(\"test\") = " + map.get("test")); // null 출력 }
만약 Value가 null인 상황에서도 매핑해야 하는 경우에는 어떻게 해야 할까? Stream으로 모아주고 싶지만 List -> Map을 매핑하는데 Value가 null일 때는 다음과 같이 하면 된다.
.collect(HashMap::new, (m, v) -> m.put(v.getKey(), v.getValue()), HashMap::putAll);
https://stackoverflow.com/questions/24630963/nullpointerexception-in-collectors-tomap-with-null-entry-values
toMap은 다음 메서드로 매핑을 하게 된다.
여기서 value를 보면 requireNonNull인 것을 알 수 있는데, 여기에서 NPE가 터진다.
물론, map의 value에는 nul을 넣을 수 있다.
만약 Value가 null인 상황에서도 매핑해야 하는 경우에는 어떻게 해야 할까? Stream으로 모아주고 싶지만 List -> Map을 매핑하는데 Value가 null일 때는 다음과 같이 하면 된다.