JAVA/Java

12. 람다식 ( Lambda, @FunctionalInterface ) [JAVA]

민돌이 2017. 5. 22. 13:16
반응형

1.람다식이란?


익명함수를 생성하기 위한 식으로 객체 지향 언어보다는 함수 지향 언어게 가깝다.

자바에서 람다식을 사용하는 이유는 코드가 매우 간결해지고, 컬렉션의 요소를 필터링하거나

매핑해서 원하는 결과를 쉽게 집계할 수 있기 때문이다. 람다식의 형태는 매개변수를 가진 코드 블록이지만, 런타임 시에는 익명 구현 객체를 생선한다.



2-1. 람다식 기본 문법


(타입 매개변수, ...) -> { 실행문; ... };


(타입 매개변수, ...)는 오른쪽 중광호 ' { } ' 블록을 실행하기 위해 필요한 값을 제공하는 역할.

' -> ' 기호는 매개 변수를 이용해서 중괄호 ' { } ' 를 실행한다는 뜻으로 해석하면 된다.



2-2. 함수적 인터페이스(@FunctionalInterface )


람다식은 하나의 메소드를 정의하기 때문에 두 개 이상의 추상 메소드가 선언된 인터페이스는 람다식을 이용해서 구현 객체를 생성할 수 없다. 이러한 인터페이스를 함수적 인터페이스라고 한다.

함수적 인터페이스를 정의할때 두 개 이상의 메소드가 선언되지 않도록 체킹해주는 기능이 있는데

인터페이스 선언시 @FunctionalInterface 어노테이션을 붙이면 된다.




두 개 이상 메소드를 정의하면 오류가 난다.






3-1. 파라미터(매개변수)가 없을때




실행결과 : 



3-2. 파라미터(매개변수)가 있을때








실행결과:


3-3. 그 외


리턴값이 있는 람다식 또한 이러한 방식으로도 사용을 할 수 있습니다.


MinFunctionalInterface lamda;


lamda = (x, y) -> { return x+y; }



반응형