【发布时间】:2019-08-30 11:45:15
【问题描述】:
我的 java 代码中有一个 Foo 类型的数组,我想将它传递给 c++。在 c++ 代码中,我也有一个名为Foo 的类。我只想通过 JNI 传输这个数组。
我有这样的电话:
#include "headers/Foo.h"
extern "C"
JNIEXPORT void
JNICALL Java_main_Main_Interface(JNIEnv *env, jobject obj, jobjectArray foo){
jint size = env->GetArrayLength(foo);
Foo cfoo[size];
for(int i = 0; i < size; i++){
cfoo[i] = env->GetObjectArrayElement(foo, i);
}
}
然而,这给了我一个错误:Type 'Foo' and 'jobject' are not compatible
我了解这个错误,但我应该怎么做才能消除它?我应该将 jobject 转换为 Foo 类型吗? c++ 会以这种方式理解对象吗?还是我错过了一些 JNI 调用?
【问题讨论】:
标签: java c++ arrays object java-native-interface