Optinal이란?
Java 8 버전부터 도입된 Optional은 값이 없는 경우를 표현하기 위한 클래스이다.
Optional 클래스는 제네릭을 사용하여 어떤 타입의 객체도 감싸서 담을 수 있다.
Option 객체는 값이 존재할 수도 있고, 없을 수도 있다.
이는 NPE(NullPointerException) 예외를 방지할 수 있으며 코드의 안정성을 높이며 가독성을 향상 시킨다.
Optional 객체 생성
Optional 객체를 생성하면 of(), ofNullable(), empty() 등의 정적 팩토리 메서드를 사용할 수 있다.
- of() 메서드 : 값이 null이 아닌 경우에만 Optional 객체를 생성
- ofNullable() 메서드 : 값이 null인 경우에도 Optional 객체를 생성
- empty() 메서드 : 값을 갖지 않은 빈(empty) Optional 객체를 생성
Optional 객체 접근
Optional 객체에 접근하기 위해서는 get() 메서드를 사용한다.
하지만 이 방법은 값이 없는 경우에 예외가 발생할 수 있기 때문에
isPresent() 메서드를 사용하여 값이 존재하는지 여부를 먼저 확인하는 것이 좋다.
예시
public void save(BoardCategory boardCategory, BoardDTO boardDTO, Long myId) {
//부모엔티티 조회하기
Optional<MemberEntity> optionalMemberEntity = memberRepository.findById(myId);
if(optionalMemberEntity.isPresent()){
MemberEntity memberEntity = optionalMemberEntity.get();
BoardEntity boardEntity = BoardEntity.toSaveEntity(boardCategory ,boardDTO, memberEntity);
boardRepository.save(boardEntity);
}
}
'🌠Development > SpringBoot' 카테고리의 다른 글
[Spring Boot] @RestController (0) | 2024.04.10 |
---|---|
[Spring Boot] @Controller (0) | 2024.04.10 |
[Spring Security] 10 - csrf enable 설정 방법 (0) | 2024.02.26 |
[Spring Security] 09 - 세션 설정 (0) | 2024.02.26 |
[Spring Securitiy] 08 - 세션 정보 확인 (0) | 2024.02.25 |