【发布时间】:2016-08-17 20:35:17
【问题描述】:
假设一个简单的 C++ 函子示例:
class Test2 {
private:
double a;
public:
Test2 (double a_) : a(a_){}
double operator () () {return 10*a;}
};
template <typename Function>
double test ( Function function ) {return function();}
int main(int argc, char* argv[]) {
double a = test( Test2(5) );
return 0;
}
有没有办法在 Java 中实现这种构造(例如使用接口 Functor)?你能给我一个简短的例子吗?感谢您的帮助。
【问题讨论】:
-
目前还不清楚您真正要完成的是什么。这似乎是一个简单的 lambda 案例。
-
@chrylis 没有羔羊可以吗?功能可能比较复杂...
-
为什么需要这样做?为什么不
Test2(5).test()? -
@ 4castle 我正在使用函子“注入”计算所需的补充数据。运算符 ()() 执行一些复杂的矩阵运算,矩阵是根据这些数据构造的。该代码代表了一个显着简化的示例。
-
@Jesper 谢谢...有没有不同的方法(Java 很自然)来表达这种关系?
标签: java c++ interface operators functor