Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- API
- CSS
- setrealrowsize
- gif초기화
- BEAN
- Grid
- singleton container
- 코딩
- 넥사크로loadingimage
- loadingimage
- 싱글톤컨테이너
- 톰캣실행
- 빈
- 로딩이미지변경
- 싱글톤
- decoratetext
- State
- singleton
- Spring
- 넥사크로
- frontend
- useSearchParams
- HTML
- 리액트
- react
- WITH절
- DB #데이터베이스
- usePrams
- 상태관리
- aws
Archives
- Today
- Total
All Day Tired
Optional 본문
개발하면서 딱히 optional을 써본 적이 없는데
강의 듣다가 optional이 쓰여서 정리해 볼 겸 작성한다.
Optional 이란
- null 값으로 인한 예외를 방지하게 해주는 컨테이너 객체
- null로 인해 발생하는 예측할 수 없는 결과를 방지하기 위해 사용
사용법
- 보통 of나 ofNullable을 사용해서 optional 객체를 생성함
Optional<String> str1 = Optional.of("Hello"); //null이 아닌 특정한 값을 return, null이라면 NPE 에러를 냄
Optional<String> str2 = Optional.ofNullable("Hi"); //null이 아닌 특정한 값이 있으면 그 값을 return하고 아니라면 null을 return
- get으로 optional 객체 타입의 값을 가져옴
Optional<String> oStr = Optional.ofNullable("Hello");
String str = oStr.get();//str에는 Hello가 들어감, 값이 있으면 그 값을 return, 아니라면 NoSuchElementException을 발생
- isPresent는 값이 있으면 true를 없으면 false을 return
그런데 isPesent와 get은 optional을 사용할 때 앵간하면 잘 쓰지 않는 편이라고 한다. 다른 메소드로 더 코드를 줄이고 가독성을 높이기 위함이라고 함.
- orElse는 optional에 값이 존재하면 그 값을 return, 아니라면 파라미터의 값을 return
Optional<Member> member = memberRepository.findById(id).orElse(null);
- orElseGet은 orElse와 비슷한데 파라미터가 새로운 객체를 생성하거나 새로운 연산을 수행하는 경우에 쓰인다.
Optional<Member> member = memberRepository.findById(id).orElseGet(() -> new Member());
- orElseThrow는 값이 존재하면 그 값을 return, 아니라면 에러를 throw함
Optional<Member> member = memberRepository.findById(id).orElseThrow(IllegalStateException::new);
아직까지 쓴 게 많지 않아서 여기까지 정리하고 추후 추가할 내용 있으면 추가하도록 하자...
'Back > Java' 카테고리의 다른 글
| 람다식, 익명클래스 (0) | 2024.12.17 |
|---|---|
| Annotation (0) | 2024.11.26 |
| JDK, JRE, JVM (0) | 2024.10.14 |
Comments