람다란? 코드식을 간결하게 해주는 익명의함수
따로 Calculator 클래스를 만들지 않고 interface만 만들고
main 클래스에서 객체를 소환해서
매서드 기능을 적으면
마치 calculator클래스를 만든것 처럼 활용 할 수 있다 .
그래서 이것을 익명클래스 라고 부른다.
람다는 익명 클래스를 좀 더 간결하게 표현하는 문법이다.
일단 람다를 사용하려면
인터페이스가 있어야 하고 추상메서드가 하나만 존재해야한다
그래서
@FunctionalInterface
public interface Calculator {
int sum (int a ,int b);
}
이런식으로 interface위에 @FunctionalInterface
라고 적으면 추상 메서드를 하나만 쓸 수 있게 된다.
그리고 나서
main 클래스에서
public class Main {
public static void main(String[] args) {
Calculator calculator2 = (a , b) -> a + b ;
int result =calculator2.sum(3,3);
System.out.println(result);
}
}
이렇게 식을 적으면 sum 함수를 사용할 수 있게된다.
컴파일러가 람다 함수를 추론해서 컴파일해서 간결하게 쓸 수 있게 된다.
아까 위에 처럼 코드가 긴거에 비해 람다를 활용하면 엄청 간결해진것을
볼 수 있다.
그러니까
@Overrride
public int sum(int a ,int b){
return a + b ;
}
};
이부분이 이렇게 한 줄로 (a , b) -> a + b ;
간결해진다.