[java] 자바 함수형 인터페이스를 사용하여 다양한 작업을 조합하는 방법은 어떻게 되나요?
함수형 인터페이스는 자바 8부터 도입된 개념으로, 단일 추상 메소드를 가지는 인터페이스입니다. 함수형 인터페이스를 사용하면 다양한 작업을 조합할 수 있는 강력한 기능을 활용할 수 있습니다.
자바에서 함수형 인터페이스를 활용하는 방법은 다음과 같습니다.
- 함수형 인터페이스 정의하기: 자신이 원하는 작업을 수행할 함수형 인터페이스를 정의합니다. 해당 인터페이스는 단일 추상 메소드를 가져야 합니다.
@FunctionalInterface
interface MyFunctionalInterface {
void doSomething();
}
- 함수형 인터페이스 구현하기: 이제 함수형 인터페이스를 구현하는 클래스를 작성합니다. 해당 클래스는 단일 추상 메소드를 구현해야 합니다.
class MyFunction implements MyFunctionalInterface {
@Override
public void doSomething() {
System.out.println("Doing something...");
}
}
- 함수형 인터페이스 사용하기: 함수형 인터페이스의 인스턴스를 만들고, 해당 인스턴스를 사용하여 원하는 작업을 수행합니다.
public class Main {
public static void main(String[] args) {
MyFunctionalInterface myFunction = new MyFunction();
myFunction.doSomething();
}
}
- 람다 표현식과 함께 사용하기: 자바에서 람다 표현식을 사용하면 함수형 인터페이스를 보다 간결하게 표현할 수 있습니다.
public class Main {
public static void main(String[] args) {
MyFunctionalInterface myFunction = () -> System.out.println("Doing something...");
myFunction.doSomething();
}
}
함수형 인터페이스를 사용하여 다양한 작업을 조합할 수 있는 예제 코드를 살펴보겠습니다.
@FunctionalInterface
interface MyFunctionalInterface {
void doSomething();
}
public class Main {
public static void main(String[] args) {
MyFunctionalInterface functionA = () -> System.out.println("Doing something A...");
MyFunctionalInterface functionB = () -> System.out.println("Doing something B...");
MyFunctionalInterface functionC = () -> System.out.println("Doing something C...");
// 함수 조합하기
MyFunctionalInterface combinedFunction = () -> {
functionA.doSomething();
functionB.doSomething();
functionC.doSomething();
};
// 함수 실행
combinedFunction.doSomething();
}
}
위의 예제 코드는 세 개의 함수형 인터페이스를 정의하고, 이를 조합하여 하나의 함수형 인터페이스로 만듭니다. 이렇게 만들어진 조합 함수는 호출할 때 마다 모든 함수들을 순차적으로 실행하게 됩니다.
이렇게 함수형 인터페이스를 사용하여 다양한 작업을 조합할 수 있으며, 람다 표현식과 함께 사용하면 코드의 간결성과 가독성을 높일 수 있습니다.
더 자세한 내용은 자바 공식 문서를 참조하십시오: