반응형
728x90
반응형
상황
휴대폰번호 010 - 1234 - 5678 번호의 3가지가 각 객체로 존재한다.
String front = "010";
String middle = "1234";
String back = "5678";
위 3가지 객체를 붙여서 hpno 객체를 완성한다.
String hpno = front + middle + back;
여기에 문제점이 존재한다. front, middle, back 변수 중 null 값이 존재한다면 "null"로 그대로 완성된다.
String hpno = front + middle + back;
// middle 이 null일 경우
log.info(hpno); // "010null1234"
해결방안
front, middle, back 각 객체의 null 체크를 하여 if-else로 처리할 수도 있다. 하지만 객체의 개수가 많아질수록 코드가 길어진다.
String hpno = "";
if (front != null) {
}
if (middle != null) {
}
if (back != null) {
}
이를 Stream 을 사용하여 해결해보자.
String front = "010";
String middle = null;
String back = "5678";
String hpno = Stream.of(front, middle, back)
.filter(Objects::nonNull)
.collect(Collectors.joining());
결과
0105678
반응형
'Coding > Java' 카테고리의 다른 글
[JAVA8 병렬프로그래밍] Executors 클래스, ExecutorService 인터페이스 (0) | 2022.06.14 |
---|---|
[JAVA8 병렬프로그래밍] 컨커런트 API (0) | 2022.06.14 |
익명클래스 vs 람다식 비교 (0) | 2022.01.25 |
JVM GC (Garbage Collection) 에 대한 정리 (2) | 2022.01.16 |
[Stream] String 에서 숫자를 추출하여 총 합(sum) 구하기 (0) | 2021.12.23 |