[Java] 람다식
2025. 5. 7. 11:39ㆍJava
람다식
- 데이터 처리부에 제공되는 함수 역할을 하는 매개변수를 가진 중괄호 블록
- 자바에선 람다식을 익명 구현 객체로 변환
(x, y) -> {
int result = x + y;
return result;
}함수형 인터페이스
- 인터페이스가 단 하나의 추상 메소드를 가지는 것
@FunctionalInterface어노테이션으로 함수형 인터페이스임을 보장할 수 있음- 실행문이 하나일 경우에만 중괄호를 생략할 수 있음, 실행문 대신 return문이 하나만 있어도 가능
메소드 참조
- 메소드 참조로 매개변수의 정보 및 리턴 타입을 알아내 람다식에서 불필요한 매개변수 제거
- 메소드 참조로 단순화 기능
// 정적 메소드 -> 클래스 :: 메소드
// 인스턴스 메소드 -> 참조변수 :: 메소드
(left, right) -> Math.max(left,right);
Math :: max;- 람다식에서 제공되는 a 변수의 메소드를 호출해서 b 매개변수를 매개값으로 사용
- a의 클래스 이름 뒤에 :: 기호를 붙이고 메소드 이름을 기술할 수 있음
// 클래스 :: instanceMethod
(a, b) -> { a.instanceMethod(b); }생성자 참조
- 객체를 생성하는 것. 람다식이 단순히 객체를 생성하고 return 하도록 구성되면 람다식을 생성자 참조로 대치 가능
- 클래스 이름 뒤에 :: 기호를 붙이고 new 연산자를 기술
- 생성자가 여러개 오버로딩된 경우, 컴파일러는 함수형 인터페이스의 추상 메소드와 동일한 매개변수 타입과 개수를 가지고 있는 생성자를 찾아 실행. 생성자가 없으면 컴파일 오류 발생.
// 클래스 :: new
(a, b) -> { return new 클래스(a, b); }
참고자료
- ITYL 6기 수업자료
'Java' 카테고리의 다른 글
| [Java] 컬렉션 자료구조 (1) | 2025.04.30 |
|---|---|
| [Java] Multi Thread (1) | 2025.04.29 |
| [Java] 제네릭 (0) | 2025.04.29 |
| [Java] 인터페이스 (1) | 2025.04.21 |
| [Java] 상속 (1) | 2025.04.17 |