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
- BEAN
- cron표현식
- setrealrowsize
- 로딩이미지변경
- 빈
- flex-basis
- Spring
- flex-grow
- 넥사크로loadingimage
- 톰캣실행
- aws
- 코딩
- decoratetext
- annotaion
- 스프링 빈
- react
- 싱글톤컨테이너
- 넥사크로
- loadingimage
- frontend
- 싱글톤
- DB #데이터베이스
- 마진상쇄
- Grid
- singleton container
- gif초기화
- HTML
- WITH절
- CSS
- singleton
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