[ Java ] 람다식

최수정·2022년 10월 21일
0

💻 개요

  • 람다식은 함수 역할을 하는 매개변수를 가진 중괄호 블록이다.
    함수 (매개변수) {
        처리내용
    }
    람다식으로 하면?
    (매개변수 , ...) ➡ { 처리내용 }
  • 람다식은 인터페이스의 익명 구현 객체이므로 인터페이스 타입의 매개변수에 대입될 수 있다. * 단 두 개 이상의 추상 메소드를 가진 인터페이스는 람다식으로 표현할 수 없다.
// 추상 메서드 
public interface Calculable {
	void calculate(int x, int y);
} 
// Calculable 인터페이스의 익명 구현 객체
new Calculable() {
	@Override
    public void calculate(int x, int y) { 처리내용 }
};

🟦 작성규칙

  1. 메서드에서 반환 타입과 이름을 지워 버린 익명함수로 만든다 ( 간단하게 만드는 느낌 )
  2. 블록 {} 앞에 ->를 추가한다.
  3. 반환타입이 있는 메서드는 return 생략가능
  4. 매개변수 앞의 타입도 지워준다. ( 생략 불가능 한 경우도 있음)
  5. 블록 안의 문장이 하나일땐, 괄호 생략가능하며 ;도 안붙인다.

🔽 예시

// 일반식
int max(int a, int b) {
	return a > b ? a : b;
}

// 람다식
(a,b) -> a > b ? a : b

// 일반식
int printVar(String name, int i) {
	System.out.println(name+"="+i);
}

// 람다식
(name, i) -> System.out.println(name+"="+i)

자바에서의 람다식

  • 자바에서의 람다식은 익명 함수가 아니라 익명 객체일 수 있다. 이때에는 객체를 다루기 위한 참조변수가 필요하다.
Object obj = new Object() {
	int max(int a, int b) {
    	return a > b ? a : b;
    }
}

0개의 댓글