함수형 인터페이스
2024년 2월 14일
-
함수형 인터페이스는 한개의 추상 메서드(Abstract Method)가 정의된 인터페이스(Interface)를 의미한다.
-
1개의 메서드(Method) 만을 갖는 인터페이스(Interface)를 의미한다.
예시
Java
-
FiInterface는 run 이라는 메서드(Method) 하나만 정의되어 있다.
-
이 인터페이스를 사용한다면 아래와 같이 코드를 작성할 수 있을 것 이다.
Java
- SomeClass의 someMethod는 FiInterface 타입의 fi 변수를 받아온다.
- 위 클래스를 사용하기 위해 아래처럼 FiInterface 를 구현한 클래스를 새로 정의하고, 그 클래스의 인스턴스(Instance)를 넣어줄 수 있겠다.
Java
- 하지만, 이는 함수형 인터페이스를 제대로 사용하지 않는 코드이다.
- 아래와 같이 람다(lambda)식을 이용해보자.
Java
-
새로운 클래스를 정의하지 않고, 람다식을 통해 메서드(Method)만 정의한 다음 SomeClass의 매개변수로 전달할 수 있다.
-
이때, FiInterface와 같이 람다(lambda)표현식이 대입될 타입을 타겟 타입 (Target Type)이라고 한다.
-
위 코드는 아래와 같이 더 축약되어 사용할 수 있을 것이다.
Java
- 코드가 직접 클래스(Class)를 직접 작성하는 것과 비교하여 굉장히 간략화 되었고, 가독성이 증가되었다.
- 이것이 람다표현식과 함수형 인터페이스를 사용하는 이유이다.