加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

将JNI-> jobject(基本上是Java文件中的map和/或map映射)转换

发布时间:2020-12-14 19:25:13 所属栏目:Java 来源:网络整理
导读:我在Java文件中有一个本地方法: class JNITest{ public native void test(String param1,MapString,Number param2,Double param3)} 从Java生成头文件后,映射将通过头文件方法转换为jobject: JNIEXPORT void JNICALL Java_com_jni_JNITest_test(JNIEnv *env

我在Java文件中有一个本地方法:

class JNITest{
    public native void test(String param1,Map<String,Number> param2,Double>> param3)
}

从Java生成头文件后,映射将通过头文件方法转换为jobject:

JNIEXPORT void JNICALL Java_com_jni_JNITest_test
(JNIEnv *env,jobject self,jstring param1,jobject param2,jobject param3) { }

我在cpp中有一个本地方法:

int cpp_native(
std::string param1,std::map<std::string,float>& param2,float> >& param3) { }

问:-我需要将Jobject转换回std :: map(cpp)才能将其传递给cpp本机方法,有人可以建议使用标准方法进行相同操作吗?
提前致谢.

最佳答案
我们已经完成了C / Java集成的大量工作.跨边界传递复杂的数据结构的问题是,您必须整理方法调用,这可能是非常复杂且容易出错的工作.我发现做这样的事情要容易得多:

>在Java方面,使用gson或jackson将地图序列化为JSON
>跨边界传递JSON字符串
>在C端将JSON反序列化为std :: map

我对C端不太熟悉,但是我看到类似的问题正在解决here

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读