Search
〰️

Optional - orElse()와 orElseGet()

orElse

method의 return값
if present, the value
otherwise, other
orElse는 Type Parameter를 Parameter로 받는다. ⇒
Parameter가 method인 경우, 해당 method가 return한 을 뜻한다.
따라서, Method가 Parameter로 전달된 경우, 해당 Method를 실행한 결과 값을 인자로 받는다.
Method를 인자로 전달할 경우, null여부와 관계없이 Method를 실행하게 된다.

orElseGet

method의 return값
if present, the value
otherwise, the result produced by the supplying function (== Supplier.get())
즉, null일 경우 Supplier를 호출한다. 아닐 경우 Supplier를 호출하지 않는다.
orElseGet은 null인 객체가 넘어온 경우에만 Supplier interface를 사용하여 생성된 값을 반환한다.
Method를 인자로 전달하였더라도, null일 경우에만 Supplier가 생성된다.