Java

15. 람다식

문정훈 2022. 5. 2. 23:27
더보기

1. 람다식이란

2. 람다식의 기본 문법

3.1 매개변수와 리턴값이 없는 람다식

3.2 리턴값이 있는 람다식

3.3 매개변수가 있는 람다식

1. 람다식이란

- 람다식은 병렬 처리와 이벤트 지향 프로그래밍에 적합하다. 
- 객체 지향 프로그래밍+함수적 프로그래밍을 혼합함으로써 더욱 효율적인 프로그래밍이 될 수 도록 개발 언어는 변화하고 있다. 

 

- 람다식은 하나의 추상 메소드가 선언 된 인터페이스의 익명 구현 객체를 선언 하는 또 다른 선언 방법이며 기존의 것 보다 더욱 코드가 간결해 진다. 
- 한 개의 메소드를 사지고 있는 인터페이스를 함수적 인터페이스라고 한다. 


 

2. 람다식의 기본 문법

- 가장 기본적 선언 방법
(타입 매개변수1, …) -> {실행문};

 

예) 기존의 방법

 

예) 람다식 방법

설명) 
람다식은 추상 메소드를 하나 가진 인터페이스의 익명 구현 객체를 더욱 쉽게 작성하기 위한 방식이다. 
ia변수에 객체를 담는 코드를 보면 우측이 람다식인데 람다식은 좌측의 인터페이스 종류에 종속적이게 된다.

(용어)람다식이 대입될 인터페이스를 람다식의 타겟 타입이라한다. 


- @FunctionalInterface 어노테이션
함수적 인터페이스 즉 람다식의 타겟 타입이 될 수 있는 인터페이스를 선언할 시 @FuntionalInterface 라는 어노테이션을 붙이면 되는데 이것은 추상 메소드가 한 개가 맞는지를 검사해주는 것이다. 추상메소드가 두 개 이상이 되면 컴파일 오류를 발생 시킨다.  


 

3.1 매개변수와 리턴값이 없는 람다식

설명) 이 경우는 매개변수가 없기 때문에 람다식 작성 시 ()를 꼭 붙혀주어야 하고, 실행문이 만약 위와 같이 하나 라면 실행문의 중괄호는 생략할 수 있다. 


 

 

3.2 리턴값이 있는 람다식

- {}안에 return 문만 있고 return문 뒤에 연산식이나 메소드 호출이 오는 경우라면 {}를 생략하고 return 키워드를 생략할 수 있다. 


 

 

3.3 매개변수가 있는 람다식

원칙1) 람다식의 매개변수 타입은 적지 않는다. 

람다식의 매개변수의 타입은 작성하지 않는다. 런타임 시에 대입되는 값에 따라 자동으로 인식될 수 있기 때문에 람다식에서는 일반적으로 언급하지 않는다.
쉽게 생각해서 인터페이스에서 메소드 선언시 매개변수의 타입이 지정되어 있으므로 굳이 람다식 작성시 타입을 두 번 작성할 필요 없다고 생가하면 됨. 
제네릭에서 Car<String, Integer> car=new Car<>(); 이렇게 선언하는 이유와 동일하다고 생각하자 

 

원칙2) 매개변수가 하나라면 람다식에서는 ()를 생략할 수 있다. 

 

전체 경우 연습 및 정리


 

'Java' 카테고리의 다른 글

14. 제네릭  (0) 2022.03.30
13. 컬렉션 프레임워크  (0) 2022.03.30
12. 자바 API 클래스  (0) 2022.02.17
11. 자바 예외 처리(실행 예외, 예외 처리 코드, 사용자 정의 예외)  (0) 2022.02.16
10. 중첩 클래스  (0) 2022.02.06