Java 的函數指標替代品
Java 缺乏函數指標可能會阻礙模組化、可重複使用程式碼的建立。不過,有一個解決方案:匿名內部類別。
考慮需要多個方法執行單行計算之外的相同操作。理想情況下,傳遞函數指標就足夠了,但 Java 不支援這一點。另一種方法是定義一個接口,將所需的函數作為其唯一成員。
例如,定義一個接受字串並傳回整數的函數:
interface StringFunction { int func(String param); }
現在,一個接受函數指標的方法可以接收StringFunction 實例:
public void takingMethod(StringFunction sf) { int i = sf.func("my string"); // do other operations ... }
呼叫此方法將如下所示:
ref.takingMethod(new StringFunction() { public int func(String param) { // Implementation for the single changed line } });
在Java 8 中,可以使用lambda 表達式進一步簡化:
ref.takingMethod(param -> { // Implementation for the single changed line });
透過利用匿名內部類別或 lambda 表達式,Java 程式設計師可以實現函數指標的功能,提供靈活性和程式碼可重複使用性。
以上是Java 如何模仿模組化程式碼的函數指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!