람다식이란?

익명 함수(anonymous function)를 이용해서 익명 객체를 생성하기 위한 식입니다.

기존까지는 인터페이스를 구현하고, 인터페이스 타입의 레퍼런스 변수에 할당해서 이용했습니다.

람다식은 인터페이스 타입의 변수를 두고 인터페이스 구현을 클래스에서 implements하는 것이 아니라 람다식을 이용해서 바로 인터페이스에 있는 메서드를 구현해서 이용하는 것을 뜻합니다.

이해가 안된다면 바로 코드를 봅시다.

public interface LambdaInterface1 {
	public void method (String s1, String s2, String s3);
}

public class Main {
	public static void main(String[] args) {
		LambdaInterface1 li1 = (String s1, String s2, String s3) -> { 
			System.out.println(s1 + " " + s2 + " " + s3); 
		};
		li1.method("Hello", "java", "World");
	}
}

원래 클래스에서 implements 한 다음에 인터페이스의 메서드를 재정의해서 사용을 해야하는데,

구현을 하지 않고 그냥 바로 쓰는 것이 람다식입니다.

method를 사용하기 위해서는

우선 매개변수가 3개이므로 (String s1, String s2, String s3) 를 써줍니다.

그리고 매개변수 3개가 주어졌을 때 실행되는 실행문을 System.out.println(s1 + " " + s2 + " " + s3); 로 명시해 줍니다.

실질적으로 method를 쓰려면 클래스를 implements해야하고 method를 구현하고 오버라이드 해서 쓸 수 있는 것인데

단순히 매개변수와 실행문을 통해서 구현을 할 수 있는 것입니다.

람다식 규칙