카테고리 없음
220831 자바 Supplier And OrElseGet()
하얀잔디
2022. 8. 31. 17:21
코드를 보다가
.orElse 와
.orElseGet의 차이가 궁금해졌다.
그런 결과 orElseGet은 Supplier을 인자로 받는다고한다..
대체 supplier은 또 뭐야??
참고 : https://m.blog.naver.com/zzang9ha/222087025042
[Java/자바] - Supplier<T> interface
Supplier<T> interface 안녕하세요, 이번시간에 알아볼 함수형 인터페이스는 Supplier<T>...
blog.naver.com
간략히 요약하자면 ,
Supplier<T>
T get();
- T를 리턴합니다.
?? 왜쓰는거지? -> lazy Evaluation 을 통해 사용하지 않아도 되는 함수를 건너뛸수 있다.
예시:
기존에는 number의 값에 상관없이 getVeryExpensive 함수가 호출이 되기에 9초가 걸리지만,
Supplier 객체를 사용하면 3초면 충분합니다!! 필요치않은건 돌지 않기 때문.
그럼 orElse와 orElseGet의 차이는 뭐냐??
orElse : null 이 아니어도 항상 불림.
orElseGet : null 일 때만 불림.
참고 : https://cfdf.tistory.com/34
java, optional의 orElse와 orElseGet의 차이
java8의 optional api 많이들 사용하실텐데요. 어찌보면 당연하지만 햇갈리는 내용에 대해 다뤄보겠습니다. 마무리 연산인 orElse와 orElseGet의 차이입니다. 귀찮으신분들을 위해 요약을 먼저 하자면 orE
cfdf.tistory.com