반응형
문제
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문만 실행 안 하고 싶을 때에는 두 번째 방법을 선택하는 것이 효율적일 것이다.
반응형
'Java' 카테고리의 다른 글
[Java] File Class를 이용한 파일 생성 (0) | 2022.07.15 |
---|---|
[Spring] StringUtils 클래스로 String 다루기 (0) | 2022.07.14 |
[Java] 로그인 인증방식은 어떤것이 좋을까? JWT(Json Web Token)발행 및 확인 vs Session (0) | 2022.07.11 |
Apache Tomcat 최신 버전 업데이트 방법 (0) | 2022.06.23 |
[라이브러리] FullCalendar 사용하기 (0) | 2022.06.03 |