Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

랩터

[Java] 스트림 - Optional Class 본문

공부/JAVA

[Java] 스트림 - Optional Class

raptorhs 2024. 7. 9. 11:44

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