null과 isEmpty()에 대하여

213kky·2024년 2월 12일

프로젝트를 진행하면서 null과 isEmpty()에 대하여 생각해 보는 시간을 갖게 되었다.

간단히 작성하면 아래와 같은 Dto에서 imageUrl들을 받아오는 부분과 Dto를 인자로 사용하여 DB에 저장하는 코드이다.

@Getter
public class Request {

    private List<String> imageUrl;
}

DB 저장 코드 일부
if (request.getImageUrl() != null && !request.getImageUrl().isEmpty()) {
	대충 저장하는 코드~~
}

코드리뷰중 이러한 부분을 발견하여

!request.getImageUrl().isEmpty()

해당 부분만 조건으로 사용하면 안되나 하며 찾아보았는데 null인 객체에 .isEmpty()를 사용하면 NPE가 발생하였다.

imageUrl이 null일 경우에 request.getImageUrl() != null의 결과로 false를 반환하여 !request.getImageUrl().isEmpty()를 실행하기 이전에 if문의 결과가 false가 되어 !request.getImageUrl().isEmpty() 해당 코드를 실행시키지 않도록 하여 NPE의 발생을 막는 코드였다.


프로젝트를 진행하면서 기초적인 공부의 필요성을 느끼는중이다..

profile
since 2022

0개의 댓글