比较JNI对象引用

 2023-01-19    340  

问题描述

我通过JNI从C ++调用JAVA方法. Java方法返回枚举状态.我已经有了我的C ++代码中的枚举的求职,如下所示: a>

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

所以,呼叫

比较JNI对象引用

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

返回代表枚举状态的职位,特别是一个.那么,我怎么知道它返回了哪个枚举?
我试图将其与STATUS_ONE进行比较,但它们不匹配.

推荐答案

在萨姆海因指出我可能的错误之后,我自己找到了它.
您只需要正确比较对象:

env->IsSameObject(o, STATUS_ONE);

谢谢!

以上所述是小编给大家介绍的比较JNI对象引用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/25839.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。