반응형
자바 Stream을 사용하는 도중
filter 메소드에 조건을 적용하려고 하는데
param이 null로 들어올 때는
조건이 적용되지 않고
전체를 가져오려고 하고
param에 값이 있을 경우에는
그 값과 동일한 값을 끌어오려고 하는데
filter에 삼항연산자를 넣어
간단히 해결 가능하다
filter 메소드만 보자면
filter(test -> param == null ? 1==1 : test.get~().equals(param))
이런 식인데
param이 null이면 1==1은
다 가져오겠다는 말이고
null이 아닐 경우에는
param과 같은 값만 필터링을 하게 된다
예제로 보자면 아래와 같은데

param이 null일 경우에는
1 == 1에 걸려
List의 모든 항목이 나오는 것이 보인다

반대로 param에 값이 있을 경우에는
param과 동일한 항목만
필터링 되는 것이 보인다
반응형
'Language > Java' 카테고리의 다른 글
자바 Type mismatch: cannot convert from null to boolean 해결방법 (0) | 2023.01.09 |
---|---|
자바 Stream BigDecimal 더하기 빼기 방법 (0) | 2022.12.08 |
자바 DTO 클래스 내 모든 변수가 NULL인지 확인방법 (0) | 2022.10.11 |
자바 List 선언과 동시에 초기화하는 방법 (1) | 2022.09.19 |
자바 List<BigDecimal> Stream으로 합계 구하는 방법 (0) | 2022.08.09 |
댓글