-
[Java] 람다 표현식(lambda expression)프로그래밍/JAVA 2022. 8. 15. 13:51728x90
람다 표현식은 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