Java lamda
Java lamda
Java - lamda
- 함수형 프로그래밍의 형태로 재사용 가능한 코드 블록
- 익명 이너 클래스를 이용한 처리 방식을 class 사용하지 않고 code block으로 전달
타겟 타입
- lamda식이 할당되는 인터페이스를 Lamda식의 타겟 타입이라 한다.
- 타겟 타입은 abstract 메서드가 반드시 하나만 존재해야한다.
@FunctionalInterface
- 컴파일러에게 하나의 abstract method 만 있음을 체크
- 2개 있으면 inner class를 사용
람다식 장/단점?
장점
- 코드 간결화 증가
- 병렬 프로그래밍 가능
단점
- 재사용 불가
- 남용시 가독성 떨어짐
람다식 문법
람다식 구현
- 익명 함수 만들기와 비슷
- 매개변수를 이용한 실행문 구현
메서드 형식
[modifiers] Type Name(args) { };
1 2 3 4 5 6 7
int max(int a, int b) { return a > b ? a : b; } // 람다 전환 (a, b) - > a > b ? a : b;
람다 실습
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
void print(String msg) {
System.out.println(msg);
}
=
(msg) -> System.out.println(msg);
int min(int a, in b) {
return a < b ? a : b;
}
=
(a, b) -> a < b ? a : b;
int printScore(String name, int score) {
System.out.println(name + “:” + score);
}
=
(name, score) -> System.out.println(name + ":" + score);
int square(int x) {
return x * x;
}
=
x -> x * x;
int lottoNo() {
return Math.random(45)+1;
}
=
() -> Math.random(45) + 1;
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.