람다식
개념
: 메서드(익명 함수)를 하나의 식으로 표현함
(매개변수_목록) -> { 로직 }
- 자바 8에서 도입
- 매개변수 : 여러 개의 매개변수 사용, 매개변수의 타입은 컴파일러가 자동으로 추론할 수 있어 생략
- 로직 : 람다식이 실제로 수행할 코드
작성 규칙
- 메서드의 이름, 반환타입 제거하고 →를 블록{} 앞에 추가한다.
- 반환값이 있는 경우, 식이나 값만 적고 return은 생략한다.
- 매개변수 타입이 추론 가능 시 매개 변수 타입 생략 가능
- 매개변수가 1개인 경우 () 생략 가능
- 로직 문장이 1개인 경우 {} 생략 가능
- 단, 한 문장이 retrun인 경우 {} 생략 불가
- 람다식 적용 전
int max(int a, int b) {
return a > b ? a : b;
}
- 람다식 적용 후
(a, b) -> a > b ? a: b
사용 예시
public class Main {
public static void main(String[] args) {
//익명함수로 메인 클래스 내에서 구현하여 호출
MaxNumber maxNumber = new MaxNumber() {
@Override
public int getMaxNumber(int x, int y) {
return x >= y ? x : y;
}
};
System.out.println(maxNumber.getMaxNumber(3,1));
}
}
public class Main {
public static void main(String[] args) {
//람다식을 이용하여 호출
MaxNumber maxNumber = (x, y) -> x >= y ? x : y;
System.out.println(maxNumber.getMaxNumber(3,1));
}
}
- MaxNumber의 인스턴스를 자주 사용할 시, 매번 오버라이딩해 작성하기 때문에 코드가 복잡해질 수 있음.
- 이를 람다식으로 구현해 간결화시킴.
동작 원리
Runnable r = () -> System.out.println("Hello, World!");
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println("Hello, World!");
}
};
- 자바 컴파일 시 람다식 → 익명 클래스로 변환
- 익명 클래스의 인스턴스를 생성하는 방식으로 동작
- 즉, 람다식은 익명 클래스의 인스턴스를 간결히 생성하는 방식임.
장점
- 간결한 함수 표현
- 코드 가독성 상승
- 재 사용성 상승
'🏕 멋사 Java 백엔드 13기 > TIL' 카테고리의 다른 글
250225 TIL : RESTController (0) | 2025.02.25 |
---|---|
250218 TIL | 상속 매핑 전략과 임베디드 타입 (0) | 2025.02.18 |
250121 TIL | AOP (2) | 2025.01.21 |
240117 TIL : DI (1) | 2025.01.17 |
[멋쟁이사자처럼 부트캠프 TIL 회고] 241231 백엔드 Java 부트캠프 21일차 (2) | 2024.12.31 |