5
我通过JNI从C++调用Java方法。 Java方法返回一个枚举STATUS。我已经表示我的C++代码的枚举喜欢这里的jobjects:https://stackoverflow.com/a/17441151/3352197比较JNI对象引用
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一个jobject,专门之一。那么,我怎么知道它返回的枚举呢? 我试图将其与STATUS_ONE
进行比较,但它们不匹配。
你是如何将'o'与'STATUS_ONE'进行比较的? – Samhain 2014-10-07 18:27:14
只是==,但这可能是错误的? 我也打印了两个,但他们有不同的指针(或左右)。 – sosnet 2014-10-07 18:32:39
尝试使用“equals”方法。不确定'env-> IsSameObject(o,STATUS_ONE)'是否调用它 – Samhain 2014-10-07 18:40:47