首頁 >Java >java教程 >Java 中如何將函數當作參數傳遞?

Java 中如何將函數當作參數傳遞?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-12 22:08:13984瀏覽

How Can Functions Be Passed as Parameters in Java?

在 Java 中將函數作為參數傳遞

在 Java 中,可以利用 Java 8 的 lambda 表達式將函數作為參數傳遞。當使用包含單一抽象方法(SAM 類型)的介面時,可以替換 lambda 表達式,從而實現簡潔的程式碼。例如:

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

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

或者,方法引用可以提供更清晰的語法:

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

Pre-Java 8 Approach

之前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