ex)
## 기존 표현
int add(int x, int y) {
return x+y;
}
## 람다식 표현
(int x, int y) -> {return x+y;}
str -> {System.out.print(str);}
x,y->{System.out.print(x+y);} // 잘못됌
str -> System.out.print(str);
str -> return str.length(); // 잘못됌
(x,y) -> x+y
str -> str.length()
MyNumber.java
;람다식을 사용하기 위한 인터페이스
; 메서드를 하나 이상 선언하면 구현부에서 컴파일 에러를 발생
; 해당 파일에 @FunctionalInterface 선언시는 이 파일에서 발생
TestMyNumber.java
; 내부적으로는 익명클래스가 생성되고 getMaxNumber 메서드에 대한 implement가 구현된 것이다.
1) 인터페이스를 생성하고 이를 인터페이스로 구현하여 메서드를 실행
2) 인터페이스 객체를 파라미터로 받는 메서드를 선언하여 해당 메서드 안에서 인터페이스를 구현
3) return 데이터가 있는 람다식에 대한 구현