orElse와 orElseGet의 fallback 계산

Optional에 값이 있어도 argument 평가 규칙은 그대로 적용된다.

orElse(load())

load를 먼저 실행한 뒤 present 값을 반환한다

always eager

orElseGet(this::load)

빈 상태에서만 load를 실행한다

conditional lazy
선택 기준fallback이 비싸거나 부수 효과가 있으면 orElseGet을 사용한다

핵심: 단순 문자열 상수처럼 계산 비용과 부수 효과가 없으면 orElse도 명확한 선택이다.