sos*_*net 6 c++ java java-native-interface
我通过JNI从c ++调用Java方法.Java方法返回枚举STATUS.我已经在我的c ++代码中有代表枚举的jobject,如下所示: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);
Run Code Online (Sandbox Code Playgroud)
所以,电话
jobject o = env->CallObjectMethod(jTestobject, test);
Run Code Online (Sandbox Code Playgroud)
返回表示枚举状态的作业,特别是ONE.那么,我怎么知道它返回了哪个枚举?我试图将它与之比较STATUS_ONE,但它们不匹配.
在Samhain指出我可能的错误后,我自己找到了它.您只需要正确比较对象:
env->IsSameObject(o, STATUS_ONE);
Run Code Online (Sandbox Code Playgroud)
谢谢!
| 归档时间: |
|
| 查看次数: |
1304 次 |
| 最近记录: |