컴퓨터 공부/코딩테스트 스터디
2022년 4월 11일 - java 8 공부 (1) (Lambda Expression & Method Reference)
주중 (zuzung)
2022. 4. 20. 10:11
- 람다(Lambda)
익명함수의 한 형태. 메소드의 인수로 전달될 수 있고, 변수로 저장될 수 있음.
함수의 인자로 함수를 받을 수 있음. 이 동작은 함수를 호출할 때 전달해 준 동작을 이용해서 함수 내부가 구현됨.
👉🏻 람다의 형태 (함수의 인자) → 함수의 내부 구현코드
람다식 내에 사용되는 지역변수는 final이 붙지 않아도 상수로 간주된다.
장점: 가독성 증가, 생산성 증가, 병렬 프로그래밍 용이
단점: 재사용 불가능, 디버깅 어려움, 재귀에 부적합
⇒ 상황에 따라 필요에 맞는 방법을 사용하는 것이 중요
- JAVA에서 제공하는 함수형 인터페이스
- Supplier<T>
- Consumer<T>
- Function<T, R>
- Predicate<T>
- 메소드 참조(Method Reference)
함수형 인터페이스를 람다식이 아닌 일반 메소드를 참조시켜 선언하는 방법.
함수형 인터페이스와 메소드가 다음의 세 조건을 만족해야 함.
- 매개변수 타입이 동일해야 함
- 매개변수 개수가 동일해야 함
- 반환형이 동일해야 함
참조가능한 메소드 목록
- 일반 메소드
- Static 메소드
- 생성자