728x90
반응형

orElse

Optional 객체에 값이 있을 경우 값을 반환하고, 값이 없을 경우에만 기본값을 반환

Optional 값이 NULL이든 아니든 항상 호출

주어진 기본값을 항상 평가하며, Optional 값이 있더라도 무조건 실행됨

Optional<String> optionalName = Optional.of("John");
String result = optionalName.orElse("Default Value");

System.out.println(result); // 출력: John

// 만약 optionalValue가 값이 있는 경우, result에는 "Hello"가 저장됨
// 값이 없는 경우에만 기본값 "Default Value"가 저장됨

 

 


orElseGet

orElseGet 메서드는 Optional 객체에 값이 있을 경우 그 값을 반환하고, 값이 없을 경우에만 기본값을 제공하는 람다 표현식 또는 Supplier 객체를 사용

Optional 값이 NULL 경우에만 호출

값이 없을 때만 람다 표현식 또는 Supplier를 평가하므로, 값이 있는 경우에는 추가적인 연산이 발생하지 않음

Optional<String> optionalName = Optional.empty();
String result = optionalName.orElseGet(() -> expensiveOperation());

System.out.println(result); // 출력: Default Value

// 값이 없는 경우에만 expensiveOperation() 메서드를 실행하여 기본값을 얻음
// 값이 있으면 expensiveOperation()은 실행 안됨
반응형
복사했습니다!