In java I have:
public class MyClass{
public enum STATUS {
ZERO,
ONE ,
TWO
}
public native STATUS nativeGetStatus();
...
private STATUS state = nativeGetStatus(); //returns enum
private STATUS state2 = nativeGetStatus(); //returns enum
}
I want native method 'nativeGetStatus' to return this enum value.
JNI returning integer and comparing with value of enum in java is an option, but was wondering is it possible to return value via jobject and assign it directly to state ? if yes how?
I struggled with the accepted answer since I couldn't figure out the signature of the static field for a while. So here's the JNI implementation that should work with the example above (not tested):
jclass clSTATUS = env->FindClass("MyClass$STATUS");
jfieldID fidONE = env->GetStaticFieldID(clSTATUS , "ONE", "LMyClass$STATUS;");
jobject STATUS_ONE = env->GetStaticObjectField(clSTATUS, fidONE);
return STATUS_ONE;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With