我有一个C ++类,其类成员如下:
class FilterPipeline{
std::vector<std::function<bool(Object&, Object&)> > filters;
public:
void addFilter(std::function<bool(Object&, Object&)> filter){
this->filters.push_back(filter);
}
bool eval(Object &o){
bool state = true;
for(int i=0; i<this->filters.size(); i++)
{
if(!this->filters[i]((*this), o))
{
state = false;
break;
}
}
return state;
}
}
在Java中,我希望能够将lambda表达式传递给addFilter
方法,并最终调用eval方法进行评估。
@FunctionalInterface
public interface Filter{
public boolean test(Object o1, Object o2);
}
FilterPipeline p = new FilterPipline();
p.addFilter((o1, o2) -> {
boolean result;
// do something here
return result;
});
if(p.eval(new Object()){
// do something
}
我应该如何在使用JNI时实现这一点?我正在考虑使用功能界面,但我对JNI开发并不熟悉,所以我不确定我该怎么做。
答案 0 :(得分:-2)
有你
1)链接头文件(c ++标准库)
2)#include
3)使用namespace std;
等?
如果您的JNI新手首先阅读了一些教程......