簡體   English   中英

如何在 JNI 中使用 std::function

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM