首頁 >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 中 lambda 表達式的出現,透過函數作為參數變得簡單。 Lambda 運算式可讓您定義實作單一抽象方法 (SAM) 介面的匿名函數。例如,您可以定義以下介面:

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

在接受MyInterface 類型參數的方法中,您現在可以使用lambda 表達式來傳遞函數,如下所示:

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

Java 8 之前

Java 8之前,將函數傳遞為的常見方法參數的目的是將它們封裝在 Callable 等介面中。考慮以下方法:

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

此方法接受 Callable 類型的參數,它表示傳回 T 型別值的函數。您可以定義 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