Java에서 Boolean 타입을 사용할 경우가 종종 있다.
보통은 boolean을 사용해 null 처리를 안해줘도 되지만, 데이터 베이스에서 select를 하는 상황 등에서 부득이하게 Boolean 타입을 사용할 수 밖에 없는 상황이 있을 것이다.
(데이터 베이스에서 non null 이 아닐 경우..)
Java에서는 wrapper 클래스의 값 자체가 null일 경우도 있기 때문에, Boolean 체크를 할 때 null 체크도 해줘야만 한다.
이러한 경우, 저도 그렇고 여러분도 if문의 조건이 두개로 들어가야하는 상황을 피하고 싶을 것이다.
Boolean data = testRepository.findById(0);
if (data != null && data) {
// 성공
} else {
// 실패
}
이럴 때, null인 경우를 따로 처리해줘야할 필요가 없다면 BooleanUtils 클래스를 사용할 수 있다.
먼저 프로젝트의 의존성을 추가해줘야 한다.
implementation 'org.apache.commons:commons-lang3:3.12.0'
Apache Commons Lang 3 라이브러리는 java.lang API를 위한 다양한 유틸리티들을 제공해준다고 한다.
Boolean data = testRepository.findById(0);
if (BooleanUtils.isTrue(data)) {
// 성공
} else {
// 실패
}
----------------------------------------
// 인라인으로 구현
if (BooleanUtils.isTrue(testRepository.findById(0))) {
// 성공
} else {
// 실패
}
사용 방법은 BooleanUtils.isTrue나 isFalse, isNotTrue, isNotFalse로 사용하면 된다.

내부의 로직을 확인 해보면 null을 별도로 handling 해준다는 것을 알 수 있다.
로직에 맞게 네 가지 메서드를 골라서 사용하면 된다.
별도의 null 처리를 해줘야한다면 사용할 순 없지만, null을 동시에 처리해줘야하는 상황이라면 코드의 리팩토링과 개선을 위해 사용하면 좋다.