Как использовать Java-карту (Java / Util / Map) в C ++ с использованием JNI - PullRequest
0 голосов
/ 24 апреля 2018

Мне нужно вызвать функцию класса java, которая возвращает карту строки в качестве ключа и список объекта класса в качестве значения.Я вызываю функцию Java из c ++ с использованием JNI.

Я успешно вызвал функцию и сохранил возвращенную карту Java в переменной JNI 'jobject'.Теперь мне нужно перебрать элементы на карте и использовать их значения, но я не могу найти, как это сделать.

Структура карты Java похожа на

'Map<String, List<ErrorLogger.ErrorObject>>'

Где ErrorLogger равен 'открытый интерфейс ErrorLogger 'и ErrorObject определен в ErrorLogger как' общедоступный статический конечный класс 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);

Может кто-нибудь, пожалуйста, помогите мнес этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...