Objects.isNull은 JDK 1.8부터 등장한 자바 표준 API 메서드이다.
null 체크에 사용되는 Objects.isNull과 object == null 두 방식의 차이가 궁금해서 알아보았다.
1. 결과의 차이는 없다.
public static boolean isNull(Object obj) {
return obj == null;
}
Objects.isNull의 return 값 또한 obj == null으로, object == null과 결과는 같다.
2. 용도의 차이는 있다.
Objects.isNull의 API Note를 보면 isNull 메서드는 filter에서 사용되기 위해 존재한다고 작성되어 있다. 즉, 람다식에서 사용되기 위해 만들어진 메서드이다. (람다식과 isNull 메서드 둘 다 Java 8부터 등장했으니 납득이 된다.)
3. 어느 것이 나을까?
isNull이 == null과 같은 로직을 수행하기에 메서드를 호출해서 null 체크를 할 필요는 없어 보인다.
또한 가독성을 고려했을 때 일반적으로 == null이 null 체크에 사용되는 것 같다.
4. 결론
if문에서는 object == null을, 람다식에서는 stream.filter(Objects::isNull) 형식이 간결해보인다.
'Coding' 카테고리의 다른 글
[Spring] @JsonInclude와 @JsonIgnore (0) | 2023.07.12 |
---|---|
[AWS S3] 여러 객체 삭제 (0) | 2023.07.10 |
[20230628] 오늘의 삽질 (0) | 2023.06.28 |
[JAVA] var 사용 시 주의할 점과 장단점 - 지역 변수 추론 타입 (0) | 2023.06.27 |
[REST API] UrlConnection vs. RestTemplate vs. WebClient (0) | 2023.06.24 |