프로그래밍/JAVA
[Java] 람다 표현식(lambda expression)
하와이블루
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