c++的vector怎么处理让JNI返回string数组

u013278383 2018-10-23 07:09:05
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);
}
...全文
800 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Simple Simple 2019-11-26
  • 打赏
  • 举报
回复
vector<string>转JNI中的STring[]方法是对的。但是java的native方法里面是string[],“jmethodID midSetIndex = env->GetMethodID(personsClass,"setIndex","([Ljava/lang/Object;)V")”这一行代码不对,将方法签名改为:"([Ljava/lang/String;)V"

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧