本文介紹了在Java中,函數指針最接近的替代品是什么?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我有一個大約有十行代碼的方法。我想創建更多做同樣事情的方法,除了需要更改一行代碼的小計算。這是一個完美的應用程序,可以傳遞函數指針來替換那一行,但是Java沒有函數指針。我的最佳替代方案是什么?
推薦答案
匿名內部類
假設您希望通過String
參數傳入一個函數,該參數返回一個int
。
首先,如果不能重用現有的接口,則必須將函數定義為其唯一成員。
interface StringFunction {
int func(String param);
}
接受指針的方法將只接受StringFunction
實例,如下所示:
public void takingMethod(StringFunction sf) {
int i = sf.func("my string");
// do whatever ...
}
,名稱如下:
ref.takingMethod(new StringFunction() {
public int func(String param) {
// body
}
});
編輯:在Java 8中,您可以使用lambda表達式調用它:
ref.takingMethod(param -> bodyExpression);
這篇關于在Java中,函數指針最接近的替代品是什么?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,