ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 람다 표현식(lambda expression)
    프로그래밍/JAVA 2022. 8. 15. 13:51
    728x90

     

     

    람다 표현식은 Java SE 8부터 제공되어, 메소드를 하나의 식으로 표현한 것으로 메소드의 이름은 생략하여 표기하는 익명 메소드 중 하나이다.

    람다 표현식을 사용하면, 불필요한 코드를 줄일 수 있고 코드의 가독성을 높여주는 장점이 있다.

     

     

    람다 표현식을 작성하기 위해서는 ( -> ) 화살표 기호를 사용한다.

    (매개변수목록) -> { 함수몸체 }

     

     

    람다 표현식을 작성할 때 유의 사항을 알아보면

    1. 매개변수의 타입을 추론할 수 있는 경우에는 타입을 생략이 가능하다.

    2. 매개변수가 하나인 경우에는 괄호를 생략할 수 있다.

    3. 함수의 몸체가 하나의 명령문만으로 이루어진 경우에는 중괄호를 생략할 수 있다.

    4. 함수의 몸체가 하나의 return 문으로만 이루어진 경우에는 중괄호를 생략할 수 없다.

    5.  return 문 대신 표현식을 사용할 수 있으며, 이때 반환값은 표현식의 결괏값이 된다.

     

     

    // 기본 메소드
    public class Calc{
        public int func1(x,y){
            int result = x < y ? x : y;
            return result;
        }
    }

    아래 코드는 위 코드를 람다 표현식으로 변환한 모습이다.

    // 람다표현식
    Calc calc = (x, y) -> x < y ? x : y;

     

     

    함수형 인터페이스

    함수형 인터페이스는 람다 표현식을 하나의 변수에 대입할 경우 사용하는 참조변수의 타입을 의미하며, @FunctionalInterface 어노테이션을 붙이므로써 함수형 인터페이스인 것을 인식 시킨다. 함수형 인터페이스는 단 하나의 추상 메소드를 포함한 형태로 두 개 이상 메소드가 선언될 경우 오류를 발생시킨다.

     

    public class Lambda1 {
        public static void main(String[] args) {
            Calc minNum = (x, y) -> x < y ? x : y;
            System.out.println(minNum.min(5,3));
        }
    }
    
    public interface Calc {
        public int min(int x,int y);
    }
    
    /* 실행결과
    3
    */

     

     

    [참조] : http://tcpschool.com/java/java_lambda_concept

     

     

     

     

     

    728x90

    '프로그래밍 > JAVA' 카테고리의 다른 글

    [Java] swing  (0) 2022.08.16
    [Java] 소켓 통신(socket)  (0) 2022.08.15
    [Java] 스레드 동기화(Thread Synchronization)  (0) 2022.08.14
    [Java] 스레드(thread)  (0) 2022.08.14
    [Java] 싱글톤(singleton) 패턴을 활용한 DB접속  (0) 2022.08.12

    댓글

Designed by Tistory.