반응형
람다식
람다식이란?
자바8부터는 객체 지향 프로그래밍과 함수적 프로그래밍을 혼합할 수 있게 람다식을 제공한다.
람다식은 익명 함수(anonymous function)를 생성하기 위한 식으로 객체 지향 언어보다는 함수 지향 언어에 가깝다.
람다식 -> 매개 변수를 가진 코드 블록 -> 익명 구현 객체
Runnable 인터페이스의 익명 객체를 생성하는 전형적인 코드 방식
<람다식을 사용하지 않았을 때>
Runnable runnable = new Runnable(){
public void run(){ ... }
};
<람다식을 사용하였을 때>
Runnable runnable = ()-> { ... };
람다식은 "(매개변수) -> {실행코드}" 형태로 작성된다. 런타임 시에 인터페이스의 익명 구현 객체로 생성된다.
어떤 인터페이스를 구현할 것인가는 대입되는 인터페이스가 무엇이냐에 달려있다.(위 코드는 Runnable 변수에 대입되므로 Runnable 익명 구현 객체를 생성하게 된다.)
람다식 기본 문법
(타입 매개변수, ...) -> {실행문; }
1. (int a) -> {System.out.println(a)};
2. (a) -> {System.out.println(a)};
3. a -> System.out.println(a);
매개 변수의 타입은 런타임 시에 대입되는 값에 따라 자동으로 인식되기 때문에 매개 변수의 타입을 일반적으로 언급하지 않는다. 하나의 매개 변수만 있다면 괄호 ( )를 생략할 수 있고, 하나의 실행문만 있다면 중괄호 { }도 생략할 수 있다.
return 타입이 있을 경우는 아래와 같이 사용한다.
(x, y) -> {return x+y;};
(x, y) -> x+y // return문만 있을 경우, 이와같이 사용
반응형
'프로그래밍 노트 > JAVA' 카테고리의 다른 글
[JAVA] 람다식 클래스 멤버와 로컬 변수 사용 (0) | 2019.04.15 |
---|---|
[JAVA] 람다식 함수적 인터페이스 (0) | 2019.04.02 |
[JAVA] 동기화된 컬렉션(thread-safe collection), 병렬처리 가능한 컬렉션 (0) | 2019.03.20 |
[JAVA] Comparable과 Comparator (0) | 2019.03.17 |
[JAVA] 콜백 방식의 작업 완료 통보 (스레드풀_4) (0) | 2019.03.16 |