시그마 삽질==six 시그마

자바 스트림 null 체크 본문

프로그래밍/Java

자바 스트림 null 체크

Ethan Matthew Hunt 2020. 4. 3. 22:09

 

		List<Member> list = null;

		//error
		list.stream().filter(Objects::nonNull).forEach(v -> System.out.println(v.getUsername()));

		//ok
		CollectionUtils.emptyIfNull(list).stream()
				.filter(v -> v.getUsername().equals("foo"))
				.collect(Collectors.toList());

		//ok
		Optional.ofNullable(list)
				.orElseGet(Collections::emptyList).stream()
				.filter(v -> v.getUsername().equals("boo"))
				.collect(Collectors.toList());

1.Null 자체가 stream에 시작되면 NPE

방지를 위해선 

CollectionUtils.emptyIfNull(someList).stream() 로 시작

compile group: 'org.apache.commons', name: 'commons-collections4', version: '4.0'

 

or

 

Optional.ofNullable(someList) .orElseGet(Collections::emptyList).stream() 로 시작

 

2. NULL 제거 리스트 얻고 싶을때

 

.filter(Objects::nonNull)
Comments