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
													
											
												
												- singleton container
 - setrealrowsize
 - 상태관리
 - gif초기화
 - Grid
 - decoratetext
 - 넥사크로
 - 싱글톤
 - react
 - frontend
 - 리액트
 - useSearchParams
 - CSS
 - 코딩
 - 싱글톤컨테이너
 - API
 - 로딩이미지변경
 - State
 - loadingimage
 - 톰캣실행
 - Spring
 - aws
 - DB #데이터베이스
 - HTML
 - usePrams
 - 넥사크로loadingimage
 - WITH절
 - singleton
 - BEAN
 - 빈
 
													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
			
		
	
               
           
					
					
					
					
					
					
				