728x90
반응형
Optional 값 가져오기 - get(), orElse(), orElseGet(), orElseThrow()
get() 메서드
값이 없는 경우 NoSuchElementException을 발생시킬 수 있으므로, isPresent()로 확인 후에 사용해야 함
import java.util.Optional;
public class GetMethodExample {
public static void main(String[] args) {
Optional<String> optionalValue = Optional.of("Hello, Optional!");
if (optionalValue.isPresent()) {
String value = optionalValue.get();
System.out.println(value); // 출력: Hello, Optional!
}
}
}
orElse() 메서드
optional 객체가 비어있는 경우 기본값 other를 반환
import java.util.Optional;
public class OrElseMethodExample {
public static void main(String[] args) {
Optional<String> optionalValue = Optional.empty();
String result = optionalValue.orElse("Default Value");
System.out.println(result); // 출력: Default Value
}
}
orElseGet() 메서드
객체가 비어있는 경우 Supplier 인터페이스를 통해 제공되는 함수를 실행하여 값을 반환
orElse()와 달리 값이 비어있을 때만 함수를 실행하므로, 자원 절약에 용이
import java.util.Optional;
public class OrElseGetMethodExample {
public static void main(String[] args) {
Optional<String> optionalValue = Optional.empty();
String result = optionalValue.orElseGet(() -> generateValue());
System.out.println(result); // 출력: Generated Value
}
private static String generateValue() {
return "Generated Value";
}
}
orElseThrow() 메서드
Optional 객체가 비어있을 때 예외를 발생시키는 메서드
Optional에 값이 존재하면 해당 값을 반환하고, 값이 없는 경우 exceptionSupplier를 통해 제공되는 예외를 발생
import java.util.Optional;
public class OrElseThrowMethodExample {
public static void main(String[] args) {
Optional<String> optionalValue = Optional.empty();
try {
String result = optionalValue.orElseThrow(() -> new IllegalArgumentException("Value not found"));
System.out.println(result);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage()); // 출력: Value not found
}
}
}
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
[Java] equals 비교 시 is null 에러 발생하는 경우 (0) | 2023.07.21 |
---|---|
[Java] 4. Optional orElse와 orElseGet 차이점 (0) | 2023.07.20 |
[Java] 1. Optional / 2. Optional 객체 생성 (0) | 2023.07.18 |
[Java] Java17 추가된 문법 및 함수 정리 (0) | 2023.07.13 |
[Java] Math.ceil() 결과가 잘못 나오는 경우 (0) | 2023.06.22 |