c++的vector怎么处理让JNI返回string数组
cpp文件中 有vector<string> indices; java的native方法里面是string[],请问在cpp文件里该怎么出路转换呢,这两天刚接触这一块,试着操作了下,大概代码是这样,但是不起作用,希望大神指导下
vector<string> indices;
if (!indices.empty()) {
jclass objClass = env->FindClass("java/lang/String");
jobjectArray outIndexArray = env->NewObjectArray(indices.size(), objClass, NULL);
if (NULL == outIndexArray) {
return -1002;
}
for (int i = 0; i < indices.size(); i++){
const char *p = indices[i].c_str();
jstring jstr = env->NewStringUTF(p);
env->SetObjectArrayElement(outIndexArray, i, jstr);
}
jclass personsClass = env->GetObjectClass(persons);
jmethodID midSetIndex = env->GetMethodID(personsClass,"setIndex","([Ljava/lang/Object;)V");
env->CallObjectMethod(persons,midSetIndex,outIndexArray);
}