Java Optional : Java 8 이후 소개된 클래스로 , 값이 있을 수 도 있고 없을 수 도 있는 Nullable 객체를 감싸는 래퍼 클래스
- null 값을 명시적으로 다루며, NullPointExecption을 방지하고 코드의 안정성을 높이는데 도움이 된다.
Java Optional의 주요 특징
객체의 존재 여부 확인
- 객체가 존재하는지 아닌지를 확인 방법을 제공
- isPresent() 메서드를 활용하여 Optional 객체가 비어있는지 확인할 수 있다.
값의 존재 여부에 따른 동작 처리
- ifPresent(Consumer action) 메서드를 사용하여 값이 존재할 경우 해당 값을 처리하는 로직을 작성할 수 있다. 이를 통해 값이 존재하지 않을 때의 예외 상황을 방지할 수 있다.
기본 값 설정
- orElse(T other) 메서드를 사용하여 Optional 객체가 비어있을 경우 기본값을 설정할 수 있다. Optional 객체가 비어있는 경우에만 해당 기본값이 반환된다.
NullPointerException 방지
- Java Optional을 사용하면 null을 다루는 것보다 더 명시적이고 안전한 코드를 작성할 수 있다. Optional을 적절히 사용하면 NullPointerException을 방지하고 코드의 가독성을 향상시킬 수 있다.
// 값이 존재할 수도, 없을 수도 있는 값을 Optional로 감싸기
Optional<String> optionalValue = Optional.ofNullable(someValue);
// 값이 존재하는지 확인
if (optionalValue.isPresent()) {
// 값이 존재할 때 처리할 로직
String value = optionalValue.get();
// ...
}
// 값이 존재할 경우 해당 값을 사용하여 처리 (값이 없으면 아무런 동작 없음)
optionalValue.ifPresent(val -> System.out.println("Value: " + val));
// 값이 존재하지 않을 경우 기본값 설정
String result = optionalValue.orElse("Default Value");
// 값이 존재하지 않을 경우 Supplier를 통해 기본값 생성
String result = optionalValue.orElseGet(() -> generateDefaultValue());
'CS' 카테고리의 다른 글
빌더 패턴(Builder Pattern) (0) | 2023.07.23 |
---|---|
JAVA - StringBuilder와 System.out.print의 속도차이 (0) | 2023.07.14 |
LinkedList와 ArrayList의 속도차이 및 용도 (0) | 2023.07.13 |
FrameWork VS Library 차이점 (0) | 2023.07.13 |