我需要调用一个java类函数,它返回一个字符串map作为键,一个class对象列表作为value。我使用JNI从c ++调用java函数。
我已成功调用该函数并将返回的java映射存储在JNI'jobject'变量中。现在我需要迭代map中的元素并使用它们的值,但是无法找到如何做到这一点。
java map的结构就像
'Map<String, List<ErrorLogger.ErrorObject>>'
其中ErrorLogger是'public interface ErrorLogger',ErrorObject在ErrorLogger中定义为'public static final class ErrorObject'。
在C ++代码中:我在jmapobj中获取此地图
//Create Map object
jclass clsMap = env->FindClass("java/util/Map");
jmethodID constructorID = env->GetMethodID(clsMap, "<init>", "()V");
jobject jmapobj = env->NewObject(clsMap, constructorID);
//Call method
jmapobj = env->CallStaticObjectMethod(Cls, method, arg);
有人可以帮助我。