본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA

Optional<T>의 생성 of() ofNullable(), 초기화 empty(), 값 가져오기 get() orElse()

 

Optional<T>

지네릭 클래스로 T타입의 객체를 감싸는 래퍼 클래스.

최종연산결과를 Optional 객체에 담아서 반환해 반환결과가 null인지 if문으로 체크하는대신에 Optional에 정의된 메서드를  통해 간단히 처리할 수 있다.

https://standout.tistory.com/1393

 

Generics 지네릭스, 형변환을 생략하다

Generics 지네릭스 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일시 타입체크를 해주는 기능 타입안정성을 제공하며 형변환을 생략할 수 있어 코드가 간결해진다. import java.util

standout.tistory.com

 

 

 

Optional객체는 of()또는 null일 가능성이 있으면 ofNullable()을 사용한다.

Optional<T>타입의 참조변수를 기본값으로 초기화할때는 null로 초기화할수있지만 empty()를 사용하는 것이 바람직하다.

Optional객체에 저장된 값을 가져올때는 get()을 사용한다. null일때는 NoSuchElementException이 발생하며 이를 대비해 orElse()로 값을 지정할 수 있다.

import java.util.Optional;

public class Main {
    public static void main(String[] args) {
        // Optional 객체 초기화: 값이 있을 경우
        Optional<String> optionalWithValue = Optional.of("Hello");
        
        // Optional 객체 초기화: 값이 없을 경우
        Optional<String> optionalEmpty = Optional.empty();
        
        // Optional 객체 초기화: 값이 null일 가능성이 있는 경우
        String nullableValue = null;
        Optional<String> optionalNullable = Optional.ofNullable(nullableValue);
        
        // 출력
        printOptional(optionalWithValue);
        printOptional(optionalEmpty);
        printOptional(optionalNullable);
    }
    
    public static void printOptional(Optional<String> optional) {
        if (optional.isPresent()) {
            System.out.println("Optional value: " + optional.get());
        } else {
            // 값이 없는 경우 대체값으로 "Default Value"를 사용
            String defaultValue = "Default Value";
            System.out.println("Optional is empty, using default value: " + defaultValue);
            // orElse 메소드를 사용하여 대체값 설정
            System.out.println("Optional value: " + optional.orElse(defaultValue));
        }
    }
}
[출력결과]
Optional value: Hello
Optional is empty, using default value: Default Value
Optional value: Default Value
Optional is empty, using default value: Default Value
Optional value: Default Value

 

https://standout.tistory.com/1459

 

Optional 객체가 값이 없을경우 대체값을 설정하기: orElse() orElseThrow()

orElse()와 orElseThrow() Optional 객체가 값이 없을경우 대체값을 설정한다. import java.util.NoSuchElementException; import java.util.Optional; public class Main { public static void main(String[] args) { // Optional 객체 초기화: 값

standout.tistory.com

https://standout.tistory.com/1460

 

Optional객체에 중간연산자 사용하기: filter() map() flatMap() isPresent() ifPresent() findAny() findFirst()

Optional객체에도 filter() map() flatMap()을 사용할 수 있다. https://standout.tistory.com/1446 스트림의 연산 - 중간연산 distinct, filter, limit, skip, peek sorted map mapToDouble mapToInt mapToLong flatMap flatma 앞서 스트림과 스

standout.tistory.com