람다식(Lamda Expression)


<aside> 💡

직접 인터페이스를 만들일이 적기때문에 자바에서 제공하는 인터페이스를 사용할 일이 더 많다.

</aside>


함수형인터페이스

→ 익명클래스보다 람다식을 더 간단하기 때문에 함수형 인터페이스를 사용할 때는 람다식이 더 권정된다


@FunctionalInterface
public interface Iadd {
	int add(int x, int y);
}

public class Ex01_Function {
	public static void main(String[] args) {
		Iadd add = (x,y) ->x+y;
		int res = result(add);
		System.out.println("res : "+res);
	}
	
	public static int result(Iadd lamda) {
		return lamda.add(1, 2);
		
	}
}



@FunctionalInterface
public interface Iminus {
	int sub(int x,int y);//추상메서드
}

public class FunctionExam {

	//반환값과 반환형의 타입은 일치해야한다
	public Iminus makeFIminus() {
		return (x,y)->x-y;
	}
}

public class Ex02_Function {
	public static void main(String[] args) {
		FunctionExam fe = new FunctionExam();
		
		Iminus im = fe.makeFIminus();//(x,y) -> x-y
		int res =im.sub(3,1);
		System.out.println(res);
	}
}