Spring #9

ims·2020년 11월 14일
0

BlueDot-Spring

목록 보기
12/13

Code data 형태의 return 값

https://umbum.dev/1071

Optional.ifPresent()

https://stackoverflow.com/questions/24228279/proper-usage-of-optional-ifpresent

검색을 많이 해봤는데, 그냥 java ifPresent쳤을 때 가장 상위권에 나오는 Stackoverflow글이 가장 좋았다.

기본 형태

userRepository.findByEmail(userApiRequest.getEmail()).ifPresent(new Consumer<User>() {
    @Override
    public void accept(User user) {
        throw new DuplicateException(ErrorCode.USER_DOES_NOT_EXIST);
    }
});

lambda 식

userRepository.findByEmail(userApiRequest.getEmail()).ifPresent((user)->{throw new DuplicateException(ErrorCode.USER_DOES_NOT_EXIST);});
  • () -> { ; } )

{} 안에 ;를 붙여줘야 되는것과, throw를 날려주는 것이 포인트였다.

userRepository.findByEmail(userApiRequest.getEmail()).ifPresent(()-> new DuplicateException(ErrorCode.USER_DOES_NOT_EXIST));
  • 이렇게 하니까 안됐었어서 헤맸음

완성

userRepository.findByEmail(userApiRequest.getEmail()).ifPresent(user->{throw new DuplicateException(ErrorCode.USER_DOES_NOT_EXIST);});
  • lambda expression에서 single parameter인 경우 ()를 빼주어야 한다.
    : (user) -> user

List추가

findArtist.getPostList().forEach(artistPost->{
    postList.add(artistPost);
});
findArtist.getPostList().forEach(postList::add);
postList.addAll(findArtist.getPostList());
profile
티스토리로 이사했습니다! https://imsfromseoul.tistory.com/ + https://camel-man-ims.tistory.com/

0개의 댓글