我通过JNI从c ++调用Java方法。Java方法返回一个枚举STATUS。我已经有代表我的C ++代码中枚举的工作项目,如下所示:https ://stackoverflow.com/a/17441151/3352197
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);
返回代表枚举状态(特别是ONE)的jobject。那么,我怎么知道它返回了哪个枚举?我试图将其与进行比较STATUS_ONE
,但它们不匹配。
在Samhain指出我可能的错误之后,我自己找到了它。您只需要正确比较对象即可:
env->IsSameObject(o, STATUS_ONE);
谢谢!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句