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

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

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-12 22:08:13987검색

How Can Functions Be Passed as Parameters in Java?

Java에서 함수를 매개변수로 전달

Java에서는 Java 8의 람다 표현식을 활용하여 함수를 인수로 전달할 수 있습니다. 단일 추상 메서드(SAM 유형)가 포함된 인터페이스로 작업할 때 람다 식을 대체하여 간결한 코드를 만들 수 있습니다. 예를 들면 다음과 같습니다.

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

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

또는 메소드 참조가 더욱 깔끔한 구문을 제공할 수 있습니다.

new Thread(this::someMethod).start();

Java 8 이전 접근 방식

Java 8에서는 명령 패턴이 일반적으로 함수를 인수로 전달하는 데 사용되었습니다. 여기에는 Callable과 같은 인터페이스에 함수를 래핑하는 작업이 포함됩니다.

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

예:

public int methodToPass() { return 3; }

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

함수를 호출하려면 익명의 내부 클래스가 사용됩니다.

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

이 접근 방식은 본질적으로 다른 언어의 함수 포인터와 동일하다는 점을 기억하세요.

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

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