Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JNI中使用std::函数 我有一个C++类,它有一个类成员如下: 类过滤器管道{ 向量滤波器; 公众: void addFilter(std::函数过滤器){ 此->过滤器。推回(过滤器); } bool eval(对象和操作){ 布尔状态=真; 对于(int i=0;ifilters.size();i++) { 如果(!this->过滤[i](*this),o)) { 状态=假; 打破 } } 返回状态; } }_Java_Android_C++_Lambda_Java Native Interface - Fatal编程技术网

Java 如何在JNI中使用std::函数 我有一个C++类,它有一个类成员如下: 类过滤器管道{ 向量滤波器; 公众: void addFilter(std::函数过滤器){ 此->过滤器。推回(过滤器); } bool eval(对象和操作){ 布尔状态=真; 对于(int i=0;ifilters.size();i++) { 如果(!this->过滤[i](*this),o)) { 状态=假; 打破 } } 返回状态; } }

Java 如何在JNI中使用std::函数 我有一个C++类,它有一个类成员如下: 类过滤器管道{ 向量滤波器; 公众: void addFilter(std::函数过滤器){ 此->过滤器。推回(过滤器); } bool eval(对象和操作){ 布尔状态=真; 对于(int i=0;ifilters.size();i++) { 如果(!this->过滤[i](*this),o)) { 状态=假; 打破 } } 返回状态; } },java,android,c++,lambda,java-native-interface,Java,Android,C++,Lambda,Java Native Interface,在Java中,我希望能够将lambda表达式传递到addFilter方法中,并在最后调用eval方法进行计算 @functioninterface 公共接口过滤器{ 公共布尔测试(对象o1,对象o2); } FilterPipeline p=新的FilterPipeline(); p、 添加过滤器((o1,o2)->{ 布尔结果; //在这里做点什么 返回结果; }); if(p.eval(新对象()){ //做点什么 } 我应该如何在使用JNI时实现这一点?我正在考虑使用功能接口,但我对J

在Java中,我希望能够将lambda表达式传递到
addFilter
方法中,并在最后调用eval方法进行计算

@functioninterface
公共接口过滤器{
公共布尔测试(对象o1,对象o2);
} 
FilterPipeline p=新的FilterPipeline();
p、 添加过滤器((o1,o2)->{
布尔结果;
//在这里做点什么
返回结果;
});
if(p.eval(新对象()){
//做点什么
}
我应该如何在使用JNI时实现这一点?我正在考虑使用功能接口,但我对JNI开发非常陌生,所以我不确定我应该在这里做什么

1) 链接的头文件(c++标准库)

2) #包括

3) 使用名称空间std

等等


如果您的JNI新手先阅读了一些教程…

您需要提供更多详细信息。你打算如何从Java代码中使用这个类?@Michael刚刚更新了这个问题。Q:Wny你不只是使用一个漂亮、简单的C风格回调函数吗?@paulsm4因为我想能够使用lambda表达式这仍然是不够的信息。您的Java
FilterPipeline
类看起来像什么?它是如何与本机代码交互的?这应该是一个注释,因为这并不能回答问题。