开始挖掘java,来自c ++。我从c ++(qt / Android)调用java中的一些函数。我想念一种方法来预定义两种语言之间可共享的标签,避免必须定义它们两次或使用字符串。
像
这样的东西定义OPERATION_START 0X01
在c中可以在java中编译/读取。
这样的事情是存在的还是你知道实现它的一些技巧?
编辑:这样的事情:
带有
的java文件stuff.javapublic enum Stuff { 表,Apple,Beach,Eye};
和Cpp +
'#define public
'#include“stuff.java”
'#undef public
那会有用吗? java会像0那样从0枚举,对吧?
答案 0 :(得分:2)
您需要能够读取其中一个定义并导出另一个定义的内容。 有很多事情可以做到这一点。 我知道的两个是: SWIG和protocol buffers。 SWIG将阅读C ++声明并使用其他语言生成相同的代码。 协议缓冲区将读取一些专有声明并为您需要的所有语言生成代码。
也可能有其他人,我也不知道任何比那些重量轻的东西。顺便说一下,这些也适用于定义要在C ++和Java(以及其他语言)之间传递的更复杂的结构。
答案 1 :(得分:1)
您可以在UML或DSL中为共享定义/枚举建模,并使用代码生成来创建Java和C ++中的匹配定义。
或者你也可以在Java类中定义它们并构建一个生成器,它使用反射从中生成匹配的C ++头文件。