Java / / 2022. 7. 12. 11:04

[Java] for문 List의 Null 체크

반응형

 

문제

for문을 돌리는 List를 어디선가 가져와서 사용할 때, Null인 경우가 있을 수도 있기 때문에 예외 처리가 필수적이다.

(Null이 처음부터 발생하지 않는 것도 중요하다.)

조금 더 효율적인 방법을 찾다가, 처음 보는 방법이 있어서 기록해 둔다.

 


 

As-Is / To-Be.

▶ As-Is

내가 기존에 쓰던 방식으로 null 체크한다면, 이렇게 했을 것이다.

if(productionList != null) {
	for (String production : productionList) {
	// 로직
	}
} else {
	// 예외
}
if(productionList == null) {
	return ; // or 예외처리
}
for (String production : productionList) {
	// 로직구현
}

 

이렇게 if문을 추가하게 되면서 블록을 생성하게 되고, 무언가를 더 해주어야 한다.

null이면 그냥 for문을 실행 안 하는 방법은 없을까?

 

▶ To-Be

org.apache.commons.collections4

에서 제공해 주는 ListUtils.emptyIfNull()을 통해 쉽게 null 예외처리를 할 수 있다고 한다.

for(PlaceNo placeNo :  ListUtils.emptyIfNull(places)){
		//로직
}

 

내부로직

간단하게 list가 null일 시 emptyList()를 리턴 시켜준다.

이는 비어있는 list이기에 for문에서도 에러 없이 잘 작동한다.

 


 

마치며.

null인 경우 예외처리를 해주어야 할 때에는 첫 번째 방식을 통해 해 줄 수 있는 것이며,

그게 아니고 null일 시 for문만 실행 안 하고 싶을 때에는 두 번째 방법을 선택하는 것이 효율적일 것이다.

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유