Anyway

[JAVA] list null체크 또는 isEmpty() 본문

Java

[JAVA] list null체크 또는 isEmpty()

dyana 2024. 9. 27. 20:43
if(reqDto.getFinalSeqNoList() == null && reqDto.getFinalSeqNoList().isEmpty())

 

null이고 비어있으면.. 뭔가 말 되는 것 같았는데.. 

논리적인 오류가 있는 코드였다. 

 

list가 null일 경우 바로 뒤에 이어지는 list.isEmpty() 호출에서 NullPointerException이 발생할 수 있다는 거다. 

 

즉 null 일 때도 isEmpty()를 호출하려고 한다. 만약 list가 null이면 자바에서 null 객체에 대해서는 아무런 메소드를 호출할 수 없다.

때문에 isEmpty()라는 메소드 자체가 호출이 안 된다는 것이다. > error 발생 : NullPointerException : null 이기 때문에 비어있는지 확인할 수 없는 것 

 

현재 조건문에서는 null이면서 동시에 isEmpty()를 호출하는 식인데 실제로 null인지 확인하고 그 다음에 비어있는지를 확인해야 한다. 

풀어서 설명하면 리스트가 null이면 그 뒤에 isEmpty()를 확인할 필요가 없다는 거다. 😀

 

if (reqDto.getFinalSeqNoList() == null || reqDto.getFinalSeqNoList().isEmpty())

 

이렇게 수정을 해야 

1) null 체크 시 list가 null인 경우를 먼저 확인하며

2) isEmpty 호출 됐을 시 null이 아닌 경우에만 리스트가 비어 있는지 확인한다.