[英]How to use std::function in JNI
我有一個 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 開發真的很陌生,所以我不確定我應該在這里做什么。
有你
1)鏈接頭文件(c++標准庫)
2) #include
3) 使用命名空間 std;
等等 ?
如果您不熟悉 JNI,請先閱讀一些教程...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.