ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 12. 람다식 ( Lambda, @FunctionalInterface ) [JAVA]
    JAVA/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; }



    반응형

    댓글

Designed by Tistory.