귀찮지만 만들어보자

이펙티브 자바 - 람다와 스트림(3) 본문

이펙티브 자바

이펙티브 자바 - 람다와 스트림(3)

타우렌주술사 2019. 1. 13. 16:35

표준 함수형 인터페이스를 사용하라


필요한 용도에 맞는 게 있다면, 직접적인 구현은 지양하는 것이 좋다.
기본적으로 제공되는 표준 함수형 인터페이스 43개나 된다.
그러니까 어지간한 경우에는 기본적으로 제공되는 함수형 인터페이스로 커버가 가능하다.

표준 함수형 인터페이스 참조 링크 : https://blog.hanumoka.net/2018/11/24/java-20181124-java-lambda2/

표준 함수형 인터페이스를 사용해야 하는 이유(필수는 아니고 권장)
- api를 다뤄야하는 개념의 수가 줄어들어 더 익히기 쉬워진다
- 표준 함수형 인터페이스는 유용한 디폴트 메서드를 많이 제공하기 때문에, 다른 코드와 상호 운용성도 좋아질 것이다

유의사항

1. 표준 함수형 인터페이스를 사용할 때 박싱된 기본 타입을 넣어서 사용하지 말라
=> 계산량이 많을때는 처참히 느려질 수 있다

2. 직접 만든 함수형 인터페이스에는 항상 @FunctionalInterface 어노테이션을 넣어두자
=> 작성의도를 알 수 있다
=> 해당 인터페이스가 추상 메서드를 오직 하나만 갖고 있어야 컴파일되게 해준다
=> 유지보수 과정에서 누군가 실수로 메서드를 추가하지 못하게 막아준다

3. 서로 다른 함수형 인터페이스를 같은 위치의 인수로 받는 메서드들을 다중정의 해서는 안된다 
=> 불필요한 모호함을 야기하게 된다
=> 올바른 메서드라는 것을 알려주기 위해 불필요한 형변환을 요구할 때가 있다.