JNI中的Java枚举序号
我有一个java枚举:JNI中的Java枚举序号,java,c++,enums,java-native-interface,Java,C++,Enums,Java Native Interface,我有一个java枚举: puclic enum TestSet{ TEST_COLOR, TEST_SKEW, TEST_ANGLE; } 现在我想在我的C++代码中编写代码: Test::Test(){ bool foo [5]; .... .... foo[TestSet.TEST_COLOR] = true; foo[TestSet.TEST_SKEW] = false; .... ..... } 我问序数,因为我想用C++和java中的枚举字段索引。
puclic enum TestSet{
TEST_COLOR,
TEST_SKEW,
TEST_ANGLE;
}
现在我想在我的C++代码中编写代码:
Test::Test(){
bool foo [5];
....
....
foo[TestSet.TEST_COLOR] = true;
foo[TestSet.TEST_SKEW] = false;
....
.....
}
我问序数,因为我想用C++和java中的枚举字段索引。p>
我知道我可以传递枚举并通过字符串访问字段类似这样的内容:
jclass clSTATUS = env->FindClass("TestSet");
jfieldID fidTEST_COLOR = env->GetStaticFieldID(clSTATUS , "TEST_COLOR", TestSet;");
jobject STATUS_ONE = env->GetStaticObjectField(clSTATUS, fidONE);
但是,如果有像我提出的代码这样的东西,会方便得多。这有可能吗?我也可以将java枚举复制到C++中,但是我必须维护两个文件。 如果在
enum
类本身上运行javah
,它将生成一个.h文件,其中包含所有序数值的#define
语句。默认情况下,我无法用javah实现这一点。但我认为你在另一个论坛上提出了这个解决方案。但是,我需要使用附加信息“调优”我的enum java,以便获得定义。我更喜欢C++中类似于实际枚举的东西,而不是定义。