@FunctionalInterface
함수 모양으로 사용할 인터페이스에 붙이는 어노테이션
- 추상 메소드가 1개인 인터페이스
- 추상 메소드의 갯수가 1개로 강제된다.
Mainclass05, Calc (FunctionalInterface, 메소드표현식)
@FunctionalInterface
함수 모양으로 사용할 인터페이스에 붙이는 어노테이션이다. 굳이 @FunctionalInterface, interface 형식을 사용하지 않고도 추상 메소드를 1개만 사용하는 class 혹은 interface는 람다 함수식을 사용할 수 있다. 그럼에도 @FunctionalInterface 를 사용하는 이유는 신뢰성을 높이기 위해서다. @FunctionalInterface를 사용하고 interface를 만들때 추상메소드를 두개 이상 작성하면 애초에 컴파일이 안된다.
람다함수에서 {}와 return을 생략 가능할때
@FunctionalInterface를 활용해서 만들어진 Calc interface를 가져와 코드로 작성한 예시이다. 람다 함수 표현식이 잘 작성되는 것을 알 수 있다. 여기서 plus와 minus 변수를 만들며 작성한 코드가 일반적인 형태인데 return만 사용하고 있다. 이렇게 람다 함수식에서 return만 활용할때 multi, divide 변수를 작성한 코드와 같이 {}와 return을 생략하는 것이 가능하다.
'java' 카테고리의 다른 글
Step12_UtilClass (ArrayList, Scanner, 확장 for 문) (0) | 2022.08.01 |
---|---|
Step11_GenericClass(포괄클래스) (0) | 2022.08.01 |
Step10_Interface (메소드 표현식) (0) | 2022.07.29 |
Step10_Interface(interface, final, 익명클래스) (0) | 2022.07.29 |
Step09_AbstractClass(inner class, 익명클래스) (0) | 2022.07.29 |