>Java >java지도 시간 >Java에서 함수를 인수로 전달하려면 어떻게 해야 합니까?

Java에서 함수를 인수로 전달하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-14 04:18:09372검색

How Can I Pass Functions as Arguments in Java?

Java에서 함수를 인수로 전달

Java에서 함수를 인수로 전달하는 기능은 코드의 다양성을 향상시킵니다. 이를 달성하기 위해서는 사용 중인 Java 버전에 따라 다양한 접근 방식이 있습니다.

Java 8 이상

Java 8에 람다 표현식이 등장하면서 인수로서의 함수는 간단해집니다. 람다 표현식을 사용하면 단일 추상 방법(SAM) 인터페이스를 구현하는 익명 함수를 정의할 수 있습니다. 예를 들어 다음 인터페이스를 정의할 수 있습니다.

public interface MyInterface {
    String doSomething(int param1, String param2);
}

MyInterface 유형의 인수를 허용하는 메서드 내에서 이제 람다 식을 사용하여 다음과 같이 함수를 전달할 수 있습니다.

class MyClass {
    public MyInterface myInterface = (p1, p2) -> { return p2 + p1; };
}

Java 8 이전

Java 8 이전에는 일반적인 접근 방식을 통과했습니다. 함수를 인수로 사용하는 것은 Callable과 같은 인터페이스 내에 함수를 캡슐화하는 것이었습니다. 다음 메소드를 고려하십시오.

public T myMethod(Callable<T> func) {
    return func.call();
}

이 메소드는 T 유형의 값을 반환하는 함수를 나타내는 Callable 유형의 인수를 허용합니다. Callable 구현을 정의하여 함수를 캡슐화하고 이를 myMethod에 대한 인수입니다.

사용 예:

인수로 전달하려는 methodToPass라는 메서드를 사용하는 경우 다음과 같이 Callable 구현을 생성할 수 있습니다.

public int methodToPass() {
    // do something
}

public void dansMethod(int i, Callable<Integer> myFunc) {
    // do something
}

그런 다음 Callable 구현으로 dansMethod 메서드를 호출합니다.

dansMethod(100, new Callable<Integer>() {
    public Integer call() {
        return methodToPass();
    }
});

결론:

이러한 접근 방식은 Java에서 함수를 인수로 전달하는 다양한 방법을 제공합니다. Java 버전 및 특정 요구 사항에 따라 다릅니다. 이러한 기술을 이해하면 Java 코드의 유연성과 재사용성을 향상시킬 수 있습니다.

위 내용은 Java에서 함수를 인수로 전달하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.