-
[Java]OptionalAndroid/Java 2023. 3. 20. 18:04반응형
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다]
<Optional이란?>
- getter 등을 이용해 값 가져오는 경우 해당 값이 null일 수도 있음 -> 이 경우에 NPE(Null Pointer Error) 발생
- 이를 방지하기 위해 null 검사를 따로 하거나 디폴트값을 설정해줘야 함
- Optional은 null이 들어올 가능성이 있는 값을 감싸는 Wrapper 클래스
- Optional<T> 클래스 통해 NPE 방지 가능
<Optional 생성 방법>
- 빈 값을 갖는 Optional 생성
Optional<String> optional = Optional.empty();
- null이 들어올 수도 있는 Optional 생성
Optional<String> optional = Optional.ofNullable(getName()); String name = optional.orElse("문자열");//null이라면 해당 문자열 return
- 값이 반드시 null이 아닌 Optional 생성
Optional<Stirng> optional = Optional.of("문자열");
- ifPresent()
- Optional 객체가 값을 가지고 있다면 true 아니면 false 리턴
//예시에서는 같은 이름이 있는 중복 회원은 가입 불가 Optional<Member> result = memberRepository.findByName(member.getName());//해당 이름으로 된 멤버 있는지 확인 result.ifPresent(m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); });
- Optional이 값을 가지고 있으면 ifPresent 다음에 작성된 로직이 동작
- *Optional을 반환하는 것은 좋은 코드가 아님*
memberRepository.findByName(member.getName()).ifPresent(m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); });
- 위와 같이 수정하는 것이 좋음
<참고>
https://mangkyu.tistory.com/70
반응형'Android > Java' 카테고리의 다른 글
[Java]Stream, Filter (0) 2023.03.20 [Java]Map (0) 2023.03.20 [Java]자바 입출력(스캐너(Scanner), BufferedReader) (0) 2023.03.19 [Android/Java] visibility invisible, gone 차이 (0) 2022.06.06 [Android/Java] 다이얼로그와 액티비티 생명 주기 (0) 2022.06.05