Optional
옵셔널이란 무엇인가?
옵셔널은 자바 8에서 도입된 클래스로, null 값을 안전하게 처리하기 위한 도구입니다.
옵셔널은 값이 존재하는 경우 Optional 객체에 값을 감싸서 저장하고, 값이 없는 경우에는 빈 Optional
옵셔널의 장점
NullPointerException 방지: 옵셔널을 사용하면 null 값으로 인한 NullPointerException을 예방할 수 있습니다.
코드 간결화: null 체크 코드를 생략하여 코드를 간결하게 작성할 수 있습니다.
코드 안전성 향상: null 값으로 인한 오류를 줄여 코드의 안전성을 높일 수 있습니다.
옵셔널 생성
Optional.of(value): 값이 null이 아닌 경우 옵셔널 객체를 생성합니다.
Optional.ofNullable(value): 값이 null일 수도 있는 경우 옵셔널 객체를 생성합니다.
Optional.empty(): 빈 옵셔널 객체를 생성합니다.
옵셔널 객체 활용
isPresent(): 옵셔널 객체에 값이 존재하는지 확인합니다.
get(): 옵셔널 객체에 저장된 값을 가져옵니다.
orElse(defaultValue): 옵셔널 객체에 값이 없는 경우 기본값을 반환합니다.
orElseGet(() -> defaultValue): 옵셔널 객체에 값이 없는 경우 람다 표현식을 통해 값을 생성합니다.
ifPresent(consumer): 옵셔널 객체에 값이 존재하면 람다 표현식을 실행합니다.
filter(predicate): 옵셔널 객체에 저장된 값이 특정 조건을 만족하는 경우만 새로운 옵셔널 객체를 반환합니다.
map(function): 옵셔널 객체에 저장된 값을 변환하여 새로운 옵셔널 객체를 반환합니다.
flatMap(function): 옵셔널 객체에 저장된 값을 다른 옵셔널 객체로 변환하여 새로운 옵셔널 객체를 반환합니다.
// 값이 존재하는 경우
Optional<String> name = Optional.of("John");
// 값이 존재하는지 확인
if (name.isPresent()) {
System.out.println(name.get()); // "John" 출력
}
// 값을 가져오기
String name = Optional.ofNullable(user.getName()).orElse("Unknown");
// 값이 없는 경우 기본값 반환
int age = Optional.ofNullable(user.getAge()).orElse(18);
옵셔널은 null 값을 안전하게 처리하기 위한 도구이지만, 남발하면 코드를 복잡하게 만들 수 있습니다.
옵셔널을 사용할 필요가 없는 경우에는 무리하게 사용하지 않는 것이 좋습니다.
옵셔널을 사용하면 코드가 간결해지지만, 코드를 읽는 사람이 옵셔널에 익숙하지 않으면 이해하기 어려울 수 있습니다.
옵셔널을 사용하는 경우에는 코드에 대한 충분한 설명을 추가하는 것이 좋습니다.
'BackEnd > Java' 카테고리의 다른 글
[Java] 순수 자바 코드로 스프링 프레임워크 구현하기 - Servlet (0) | 2024.05.16 |
---|---|
[Spring] 싱글톤 컨테이너, 컴포넌트와 컴포넌트 스캔 (0) | 2024.04.07 |
[Java] Thread의 내부 생성자, 메소드 (0) | 2023.12.08 |
[Java] 김영한의 실전 자바 정리 2 - 패키지 ~ 메모리 구조와 static (1) | 2023.12.04 |
[Java] 김영한의 실전 자바 기본 공부 내용 정리 - 1 (0) | 2023.12.01 |