Map의 getOrDefault 사용하면 null-safe 하게 값을 가져올 수 있다고 생각했는데
HashMap 사용할 경우 override 되어 key의 value가 null인 경우 그대로 null로 리턴된다.
Map<String, Object> map = new HashMap();
map.put("a", null);
// NullPointerException
String s1 = map.getOrDefault("a", 1).toString();
// Null-Safe
String s2 = Optional.ofNullable(map.get("a")).orElse("").toString();
따라서 HashMap 사용할 경우 getOrDefault 보다 Optional 함수를 사용하는 것이 좋다.
반응형
'Java' 카테고리의 다른 글
[ JAVA ] synchronized VS Reentrant Lock (0) | 2023.08.14 |
---|---|
[ JAVA ] 자바에서 몽고 ISODate 필드 쿼리 (MongoDB ISODate field search using Java) (0) | 2023.06.07 |
[JAVA] 현재 디렉터리 경로 확인하는 방법 (0) | 2022.12.12 |
[REGEX] 문자열에서 특정 문자열 추출하기 (0) | 2022.12.12 |
[JAVA] 문자열 비교 ==, equals() 차이점 (0) | 2022.10.06 |