랩터
[Java] 스트림 - Optional Class 본문
Optional<T>은 NullPointerException(NPE), 즉 null값으로 인해 에러가 발생하는 현상을 객체 차원에서 효율적으로 방지하고자 도입되었습니다. 연산 결과를 Optional에 담아서 반환하면, 따로 조건문을 작성해주지 않아도 NPE가 발생하지 않도록 코드를 작성할 수 있습니다.
Optional<T>
Optional 클래스는 모든 타입의 객체를 담을 수 있는 래퍼클래스입니다.
package Stream;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
public final class OptionalExample {
public static void main(String[] args) {
List<String> languages = Arrays.asList(
"Ruby", "Python", "Java", "Go","Kotlin");
Optional<List<String>> listOptional = Optional.of(languages);
int size = listOptional
.map(List::size)
.orElse(0);
System.out.println(size);
}
}
Optional객체를 생성하려면 of() 또는 ofNullable()을 사용합니다. 참조변수의 값이 null일 가능성이 있다면,ofNullable()을 사용합니다.
Optional<T> 타입의 참조변수를 기본값으로 초기화하려면 empty()메서드를 사용합니다.
Optional객체에 객체에 저장된 값을 가져오려면 get()을 사용합니다.
참조변수의 값이 null일 가능성이 있다면 orElse()메서드를 사용해 디폴트 값을 지정할 수 있습니다
Optional객체는 스트림과 유사하게 여러 메서드를 연결해서 작성할 수 있습니다.
'공부 > JAVA' 카테고리의 다른 글
[Java] 스레드 (0) | 2024.07.10 |
---|---|
[Java] 파일 입출력 (0) | 2024.07.09 |
[Java] 스트림 - 스트림의 최종 연산 (0) | 2024.07.08 |
[Java] 스트림 - 스트림의 중간 연산 (0) | 2024.07.08 |
[Java] 스트림 - 스트림의 생성 (0) | 2024.07.08 |