Java8 Stream 참고

프로그래밍 2021. 1. 21. 17:35

NPE을 방지하기 위한 entity to dto 처리 방법

프로그래밍 2021. 1. 21. 16:17

1. Optional entity to dto

return Optional.ofNallable(entity)
       .map(Entity::convertToDto)	//Entity.convertToDo() 수행한 결과를 리턴
       .orElse(null);

Mapping

맵(map)은 스트림 내 요소들을 하나씩 특정 값으로 변환해줍니다. 이 때 값을 변환하기 위한 람다를 인자로 받습니다.

<R> Stream<R> map(Function<? super T, ? extends R> mapper);

스트림에 들어가 있는 값이 input 이 되어서 특정 로직을 거친 후 output 이 되어 (리턴되는) 새로운 스트림에 담기게 됩니다. 이러한 작업을 맵핑(mapping)이라고 합니다.

 

 

2. 삼항연산 entity to dto

return !ObjectUtils.isEmpty(entity) ? entity.convertToDto() : null;

 

3. if entity to dto

if(!ObjectUtils.isEmpty(entity)){
	return entity.convertToDto();
}else{
	return null;
}

 

p.s. IDE에서 제공하는 @Nullable, @NotNull 어노테이션도 있으니 필요하면 구글링 추가.

 

 

참고1 www.daleseo.com/java8-optional-before/

 

자바8 Optional 1부: 빠져나올 수 없는 null 처리의 늪

Engineering Blog by Dale Seo

www.daleseo.com

 

참고2 www.daleseo.com/java8-optional-after/

 

자바8 Optional 2부: null을 대하는 새로운 방법

Engineering Blog by Dale Seo

www.daleseo.com

참고3 www.daleseo.com/java8-optional-effective/

 

자바8 Optional 3부: Optional을 Optional답게

Engineering Blog by Dale Seo

www.daleseo.com