Growth-Collectors / effective-java

repository for effective java study
3 stars 2 forks source link

아이템 43. 람다보다는 메서드 참조를 사용하라 #43

Open HanaHww2 opened 1 year ago

HanaHww2 commented 1 year ago

람다


메서드 참조


람다, 메서드 참조의 사용


        //메서드 참조를 할 때
service.execute(GoshThisClassNameIsHumongous::action);
        //람다 사용을 할 때
service.execute(() -> acation());
- 예) `java.util.function` 패키지의 제네릭 정적 팩터리 메서드인 `Function.identity()`를 사용하기보다는 똑같은 기능의 람다 `(x -> x)`를 직접 사용하는 게 더 짧고 명확함

메서드 참조 유형


메서드 참조 정리표

메서드 참조 유형 같은 기능을 하는 람다
정적 Integer::parseInt str -> Integer.parseInt(str)
한정적(인스턴스) Instant.now()::isAfter Instant then = Instant.now()
t -> then.isAfter(t)
비한정적(인스턴스) String::toLowerCase str -> str.toLowerCase()
클래스 생성자 TreeMap<K,V>::new () -> new TreeMap<K,V>()
배열 생성자 int[]::new len -> new int[len]

유형 분류

결론


Tldkt commented 1 year ago

요점정리

jioome commented 1 year ago

람다만 거의 사용하고 메서드 참조를 별로 사용 안 해봤는데 담에 써봐야겠습니다

YunDaHyee commented 1 year ago

인스턴스 메서드 참조에 대한 예에 대해서 좀 더 알아봐야겠네요. 뭔가 개념이 확실하게 안오네요ㅠ