Java8 Supplier을 활용하여 Lazy Evaluation 사용하기

모던 자바 (자바8) 못다한 이야기 - 05 Supplier, The Master of Lazy Evaluation를 보고 Lazy Evaluation에 대해서 정리를 한번 해본다.

Supplier를 사용하면 3초만 걸리는 이유

기존에 Supplier를 사용하지 않은 경우에는 조건문을 만나기전에 getVeryExpensiveValue()을 호출하자마자 즉시 가지고 온다. 그렇기 때문에 조건(num >= 0)에 상관없이 무조건 getVeryExpensiveValue()를 실행한다.

하지만 Supplier에서는 조건문에 만족할 경우에만 valueSupplier.get()을 하기 때문에 필요할때만 getVeryExpensiveValue()을 호출한다.

Written on March 1, 2018