在c++和Java之间共享定义或枚举
Sharing defines or enums between C++ and Java
开始挖掘java,来自c++。我从c++ (qt/Android)调用java中的一些函数。我错过了一种方法来预定义一些标记之间的两种语言共享避免定义它们两次或使用字符串。
比如
c中的define OPERATION_START 0X01
在java中可编译/可读。
这样的东西存在吗?或者你知道一些实现它的技巧吗?
编辑:这样怎么样:
java文件stuff.java with
公共enum Stuff{Table, Apple, Beach, Eye};
和
# define公众
"stuff.java"' # include
# undef公众
可以吗?Java会像c一样从0开始枚举,对吧?
您需要能够读取其中一个定义并导出另一个定义的东西。有很多东西可以做到这一点。我知道的两个是:SWIG和协议缓冲区。SWIG将读取c++声明,并用其他语言生成相同内容的代码。协议缓冲区将读取一些专有声明,并为您需要的所有语言生成代码。
可能还有其他的,我不知道有什么比它们更轻的了。顺便说一句,对于定义在c++和java(以及其他语言)之间传递的更复杂的结构,它们也很有用。
您可以在UML或DSL中对共享定义/枚举进行建模,并从那里使用代码生成来创建Java和c++中的匹配定义。
或者您也可以在Java类中定义它们,并构建一个生成器,该生成器使用反射从中生成匹配的c++头文件。
相关文章:
- 如何正确实现和访问运算符的各种自定义枚举器
- C++:如何在声明枚举类的模板类主体之外定义枚举类?
- 如何在 std::p air 中使用 System::Guid 和自定义枚举?
- 当在基类中定义枚举时,qml中的Q_ENUM未定义值
- 在 FlatBuffer 中使用自定义枚举
- 在宣布后定义枚举 - 比利亚利
- 是否可以定义一个宏来定义枚举类和返回枚举元素计数的 GetCount() 方法
- 类型定义枚举"member"
- 使用对其他枚举值的操作定义枚举元素值
- 具有自定义枚举C++类
- 是否可以手动定义枚举类的转换
- 我们可以在函数中定义枚举吗?
- 在类内部的结构中定义枚举
- 在 c++ 中定义枚举类型的静态变量
- 重新定义枚举的比较运算符
- 在类或文件中定义枚举
- 可以根据同一枚举类型中的其他枚举器来定义枚举器吗
- 检查是否已定义枚举成员
- 在哪里定义枚举
- 在类外部使用在类内部声明的类型定义枚举