而在Java編程編碼,我有如下的問題。如何在java類中有效地生成函數指針?
下面是C++代碼。如你所知,可變Alpha
在SomParam class
是函數指針。當用戶在構造設置的功能地址到Alpha
,則變量Alpha
執行當前的功能。
double lin_alpha(double alpha_0, int t, Subscript rlen, double) {
return alpha_0 * (1.0 - (double) t/rlen);
}
double inv_alpha(double alpha_0, int t, Subscript rlen, double C) {
//double C = rlen/INV_ALPHA_CONST;
return alpha_0 * C/(C + t);
}
#define LIN_ALPHA 1
#define INV_ALPHA 2
class SomParam{
public:
typedef double Alpha(double, int, int, double);
protected:
Alpha *_alpha;
int _xdim;
int _ydim;
public:
SomParam(int AlphaType,int xdim, int ydim) {
if (AlphaType == LIN_ALPHA) _alpha = lin_alpha;
else _alpha = lin_alpha;
_xdim = xdim;
_ydim = ydim;
}
我的問題是,我想知道如何將上面的代碼轉換爲Java版本。由於Java沒有指針概念,所以我很難將其轉換爲Java版本。我已經知道接口可能能夠替換Java中的函數指針,但我無法將其應用於我的代碼。 如何將上面的一個轉換爲java版本?
Ps。我希望,因爲我使用的是Java,你不應該使用lambda表達式7
我不認爲在java中有函數指針。然而,java8 lambda參數看起來像一個函數作爲參數傳遞。 – Tiina
爲什麼不使用Java 8?Java 7已經相當一段時間過時了。 –