Optional<T>
클래스를 사용해 NPE를 방지할 수 있도록 도와줌Optional<String> optional = Optional.empty();
Optional<string> optional = Optional.of("MyName");
Optional.of(null)
을 하려고 하면 NPE 발생 Optional<String> optional = Optional.ofNullable(getName());
//값이 null이라면 anonymous를 리턴함
String name = optional.orElse("anonymous");
Optional.ofNullable()
로 생성함orElse()
또는 orElseget()
을 사용해 안전하게 값을 가져올 수 있음 Optional 에서 값을 꺼낼 때는
.get()
으로 값을 꺼낼 수 있음
//회원 가입
public Long join(Member member){
//이름이 중복되는 회원이 없어야함
Optional<Member> result = memberRepository.findByName(member.getName());
result.ifPresent(m->{
throw new IllegalStateException("이미 존재하는 회원입니다");
});
memberRepository.save(member);
return member.getId();
}
ifPresent
로 null이 아니면 특정 동작 수행 //회원 가입
public Long join(Member member){
//이름이 중복되는 회원이 없어야함
memberRepository.findByName(member.getName())
.ifPresent(m->{
throw new IllegalStateException("이미 존재하는 회원입니다");
});
memberRepository.save(member);
return member.getId();
}