在 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中文網其他相關文章!