item 43) 람다보다는 메서드 참조를 사용하라
Last updated
Last updated
함수 객체를 람다보다 간결하게 만든다.
아래는 merge 메서드에서 람다를 사용하는 코드와 정적 메서드 sum을 사용해 메서드 참조를 하는 코드이다.
map.merge(키, 값, 함수): 키가 맵 안에 없다면 (키, 값)을 저장하고, 키가 맵 안에 있다면 기존 값과 입력된 값에 (함수)를 적용한 후 (키, 함수 적용된 값)을 덮어쓴다.
메서드 참조를 통해 간결한 코드가 되었다.
메서드 참조를 사용하는 것이 보통 더 짧고 간결하다.
메서드와 람다가 같은 클래스에 있는 경우나 클래스/메서드 네임이 너무 길 경우 람다가 더 간결하다.
람다로는 제네릭 함수 타입 구현을 표현할 수 없다. 메서드 참조로만 가능하다.
정적 메서드를 가리키는 참조
한정적 인스턴스 메서드 참조: 수신 객체(참조 대상 인스턴스)를 특정한다.
비한정적 인스턴스 메서드 참조: 수신 객체를 특정하지 않는다.