Coding

[JAVA] Objects.isNull vs. object == null

솔묘 2023. 6. 12. 14:15

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) 형식이 간결해보인다.