如何在JAVA (Android NDK)中访问.h中声明的枚举
C++ / JNI - How to access enum declared in .h in JAVA (Android NDK)
我有一个c++头文件,其中声明了一些enum。
// enum.h
enum event {
event_1,
event_2,
event_3,
event_4
}
c++文件和头文件在库.so中编译(使用GNU)。
现在我想在我的Java类中这样做:
// Test.java
public class Test {
private event currentEvent;
public test() {
if (currentEvent == event.event_1)
; // I will do my stuff
}
}
谁有建议?
谢谢
我怀疑是否有直接的方法来做到这一点。
对于C或c++,您可以使用SWIG。它会自动为c++类和元素生成Java包装器。
21.3.5.5简单枚举
此方法类似于类型不安全方法。每个枚举项也包装为静态final整数。然而,这些整数是而不是生成一个以C/c++枚举命名的类。相反,全球枚举被生成到常量接口中。此外,还定义了枚举在c++类中直接将枚举项生成到Java中而不是Java代理类中的内部类。在事实上,这种方法有效地包装了枚举,就好像它们是匿名枚举,结果代码与匿名枚举相同。的实现在"enumsimple"中。swg"文件。
兼容性注意:SWIG-1.3.21和更早的版本包装了所有枚举使用这种方法。类型不安全的方法优于此方法一个,这个简单的方法只包括向后与这些早期版本的SWIG的兼容性
相关文章:
- C++:无法访问声明的受保护成员
- 访问在 C++ 结构中声明的枚举变量
- 模板方法访问正向声明的类仅在没有此指针的情况下无法编译
- 为什么即使我声明了朋友类,我也会收到错误"无法访问类中声明的私人成员"
- 在 C++ 中声明和访问 C 库中的结构
- 在使用受保护和继承时无法访问在类中声明的私有成员
- 如何声明指向成员内容的成员指针m_pmd/m_pmf并访问它们?
- 如何访问转发声明类的成员
- 在 if 语句中声明时如何访问类对象?(在 C++ 中)
- 在类访问混淆中声明的枚举类型
- 在 c++ 中直接访问的内联数组声明
- 如何将超类的受保护成员访问到其派生类. 如果已在派生类中声明了具有相同名称的函数?
- 如何访问在 c++ 中在类内声明的结构类型指针变量?
- 使用好友声明访问私有模板
- C++中成员名称查找和访问声明中的歧义
- 在派生的C 类中,访问基类受保护成员作为公共的访问声明
- 如何在 SWIG 中访问声明的模板结构变量
- xcode 5.1.1抱怨:ISO c++ 11不允许访问声明
- 不赞成使用访问声明,而是使用-declarations;建议:添加“using”关键字
- 公共访问声明不会影响成员函数指针