【发布时间】:2019-01-18 07:36:19
【问题描述】:
我在 java 文件中有一个本地方法:-
class JNITest{
public native void test(String param1, Map<String, Number> param2, Map<String, Map<String, Double>> param3)
}
从java生成头文件后,map转换为头文件方法中的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,
std::map<std::string, std::map<std::string, float> >& param3) { }
问:- 我需要将 Jobject 转换回 std::map(cpp) 以将其传递给 cpp 本机方法,有人可以建议标准方法来做同样的事情吗? 提前致谢。
【问题讨论】:
-
您可以尝试使用 JavaCPP 从 Java 访问 std::map:github.com/bytedeco/javacpp 如果您有兴趣,请告诉我,我可以提供一些示例代码作为答案。
标签: java c++ java-native-interface jnienv jniwrapper