Objects
자바 객체에 대한 다양한 메서드를 제공하는 클래스
reqiureNonNull
객체를 입력받아 null이라면 NullPointerException을 발생시키고, null이 아니면 반환해주는 메서드이다.
언뜻 보면 객체를 사용하는 시점에 자연스럽게 NullPointerException이 발생하도록 하는거랑 차이가 없지 않나 생각이 들 수 있다.
하지만 requireNonNull 메서드 사용 시, null이 들어왔을 경우 바로 예외가 던져지므로 콜스택이 간결해져 어느 부분에서 예외가 발생했는지 파악하기가 편하다.
isNull / nonNull
Java 8 lambda filtering을 위한 메서드이다.
아래와 같이 filter 메서드의 인자로
Predicate<? super T> predicate
를 주어야하는 상황일 때 사용한다.Predicate 함수형 인터페이스는 제네릭 타입의 객체를 입력받아 boolean을 반환하도록 한다.
Objects::isNull
대신x -> x == null
형태로 작성할 수 있지만, 이펙티브 자바에 의하면 메서드 참조 방식이 일반적으로 더 간결하므로 권장한다고 한다.
equals
Objects에서는 null-safe한 equals 메서드를 제공한다.
두 객체가 모두 null이면 true를 반환한다.
두 객체 중 하나만 null이라면 false를 반환한다.
두 객체가 Object.equals()를 통해 동일하다고 판정되면 true를 반환한다.
Last updated