람다(Lamda)

kmb·2022년 7월 9일
0

자바

목록 보기
25/31
post-thumbnail

JDK 1.8 이상부터 함수형언어 기능을 추가시켰다.

람다식

함수(메소드)를 간단한 식(expression)으로 표현하는 방법.

int max(int a, int b) {
	return a > b ? a: b;
}

위의 함수(메서드)를 아래의 식(expression)으로 표현 할 수 있다.

(a, b) -> a > b ? a : b

즉 반환타입과 메서드이름을 지우고 메서드이름과 블록{ } 사이에 -> 기호를 추가하면 된다.

함수와 메서드는 같은 의미이지만 함수는 클래스에 독립적이고 메서드는 클래스에 종속적이다.


람다식 규칙

1) 반환(return)값이 있을경우 식이나 값만 적고 return, ; 생략 가능.
2) 매개변수(parameter) 타입이 추론 가능하다면, 매개변수 타입 생략 가능.
3) 매개변수(parameter)가 1개일경우 괄호( ) 생략 가능. 단 매개변수의 타입이 없을때만 생략 가능하다.


람다식은 익명함수가 아니라 익명객체이다.
--> 따라서 람다식(익명객체)을 다루려면 참조변수가 필요하다.

@FunctionalInterface
interface MyFunction {  // 함수형 인터페이스(추상메서드가 오직1개)

	public abstract int max(int a, int b);
}

public static void main(String[] args) {

	MyFunction mf = (a, b) -> a > b ? a : b;

	int result = mf.max(3, 5);
}

출처

  • 자바의 정석 (책)
profile
꾸준하게

0개의 댓글