Сравнение ссылок на объекты JNI

Я вызываю метод Java из C++ через JNI. Метод Java возвращает перечисление STATUS. У меня уже есть рабочие места, представляющие перечисления в моем коде C++, как здесь: /questions/8124318/kak-vernut-enum-iz-jni/8124330#8124330

jclass clSTATUS    = env->FindClass("MyClass$STATUS");
jfieldID fidONE    = env->GetStaticFieldID(clSTATUS , "ONE", "LMyClass$STATUS;");
jobject STATUS_ONE = env->GetStaticObjectField(clSTATUS, fidONE);

Итак, вызов

jobject o = env->CallObjectMethod(jTestobject, test);

возвращает объект задания, представляющий перечисление STATUS, особенно ONE. Итак, как мне узнать, какое перечисление вернулось? Я пытался сравнить это с STATUS_ONE, но они не совпадают.

1 ответ

Решение

Нашел это сам, после того, как Самайн указал на мою возможную ошибку. Вам просто нужно правильно сравнить объекты:

env->IsSameObject(o, STATUS_ONE);

Спасибо!

Другие вопросы по тегам