没有简单的方法可以做到这一点。您必须HashMap<String, String>
在代码中构建。
你将需要这样的东西:
// Creating HashMap - we have to instantiate object of class HashMap
jclass hashMapClass = env->FindClass("java/util/HashMap");
// Get the constructor of HashMap
jmethodID hashMapConstructorID = env->GetMethodID(hashMapClass, "<init>", "()V");
jobject hashMap = env->NewObject(hashMapClass, hashMapConstructorID);
// Get id of 'put' method
jmethodID putMethodID
= env->GetMethodID(
hashMapClass,
"put",
"(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
// For each pair inside 'map' I will call 'put' of Java based HashMap
for(auto const &pair: map) {
jstring key = env->NewStringUTF ( pair.first.c_str() );
jstring value = env->NewStringUTF ( pair.second.c_str() );
env->CallObjectMethod(hashMap, putMethodID, key, value);
}
填写完毕后,您HashMap
可以在您期望的位置调用您的方法HashMap
作为参数。
你可以在这里找到完整的示例代码:https ://github.com/mkowsiak/jnicookbook/tree/master/recipes/recipeNo061