@FunctionalInterface
public interface LambdaInterface {
public void test();
}
1. 람다식을 사용하지 않는 경우
LambdaInterface lam = new LambdaInterface() {
//인터페이스의 모든 추상메서드를 실체메서드로 선언
public void test() {
System.out.println("익명구현객체방식");
}
};
2. 람다식을 사용하는 경우
LambdaInterface lam =
() -> System.out.println("람다식");
기본형식
(자료형이름 매개변수명, ... ) -> { 실행문들; ... }
매개변수의 '자료형이름' 생략가능
(int a) -> { System.out.println(a); }
▶ (a) -> { System.out.println(a); }
매개변수가 1개인 경우 괄호'( )' 생략가능
(단, 자료형이름을 지정할 경우에는 생략불가)
▶ a -> { System.out.println(a); }
실행문이 1개인 경우 중괄호'{ }' 생략가능
(단, 문장의 끝을 나타내는 세미콜론;도 생략)
▶ a -> System.out.println(a)
매개변수가 하나도 없으면 괄호 '( )' 생략불가
▶ () -> { System.out.println(a); }
반환값이 있을 경우 return 명령 사용
▶ (a, b) -> { return a + b ; }
▶ (a, b) -> return a + b ;
실행문에 return 문만 있는 경우 return 명령과 괄호'{ }' 생략가능
▶ (a, b) -> a + b ;