使用Java 1.5编译thrift生成的类时出错
我有thrift 0.9.1编译器(为windows预构建)和源代码。我使用Ant构建java库。 我创建了一个节俭idl,并用编译器编译它。生成代码文件没有问题。 我在我的项目中添加了这些文件,并添加了slf4j(从他们的网站下载)和libthrift。 除了与重写方法相关的错误外,我以前遇到的大多数错误(导入等)都消失了。 因此,基本上它抱怨如下: 类型为Server的方法clear()必须重写超类方法 同样地,对于使用Java 1.5编译thrift生成的类时出错,java,c++,eclipse,compilation,thrift,Java,C++,Eclipse,Compilation,Thrift,我有thrift 0.9.1编译器(为windows预构建)和源代码。我使用Ant构建java库。 我创建了一个节俭idl,并用编译器编译它。生成代码文件没有问题。 我在我的项目中添加了这些文件,并添加了slf4j(从他们的网站下载)和libthrift。 除了与重写方法相关的错误外,我以前遇到的大多数错误(导入等)都消失了。 因此,基本上它抱怨如下: 类型为Server的方法clear()必须重写超类方法 同样地,对于compareTo、write、read等,它抱怨所有被重写的方法。这都是t
compareTo
、write
、read
等,它抱怨所有被重写的方法。这都是thrift编译器生成的代码,我没有做任何更改
有什么不兼容的地方吗?我真的找不到关于那件事的任何提及。我尝试过删除然后添加库,我也尝试过清理、刷新、验证项目,但错误仍然存在
我也尝试过编译代码(节俭代码),但MinGW也是一个非常头痛的问题。即使我已经安装了configure
,它也找不到。如果我运行msys
控制台,它可以配置
,但不能make
抱怨inttypes.h
不存在(它不在msys include目录中,但在MinGW include目录中)
如有任何建议,将不胜感激 您正在使用Java 5吗?使用Java 5
@Override
不会在接口上搜索方法,只在超类上搜索
如果您使用的是Java5编译器,请尝试使用较新的javac(最好是7或8),请参阅其中的一个
编辑:
不确定这是否在您的Thrift版本中,但在我的版本中,似乎有一个名为java5
的标志,您可以在生成代码时指定该标志,以指定希望生成的代码符合Java 5
`Platform`: Windows 7, MinGW, MSYS, Java 1.5
这与其他事情有关吗?顺便说一句,在Windows上不要使用MinGW。编译器文件夹中有一个Visual Studio项目。您基本上只需要flex/bison支持,web上有一个Windows somewehere安装包就可以了。IIRC仅此而已。工作起来很有魅力。据我所知,由于一系列与MinGW相关的bug,MinGW构建不再适用于Windows。既然VS项目运行得很好,就不再需要那个PITA了。这是第二个问题,我也可以从他们的网站上获得二进制文件。但主要问题是生成的代码没有编译,“但主要问题是生成的代码没有编译”——老实说,这很难相信。你能准备一个测试用例吗?我刚刚添加了你“忘记”提到的重要信息。谢谢。我不知道。我可以用任何方式让它在1.5中运行(只需删除注释)编辑我的答案,以提及java5标志,希望能有所帮助
java (Java):
beans: Members will be private, and setter methods will return void.
private-members: Members will be private, but setter methods will return 'this' like usual.
nocamel: Do not use CamelCase field accessors with beans.
fullcamel: Convert underscored_accessor_or_service_names to camelCase.
android: Generated structures are Parcelable.
android_legacy: Do not use java.io.IOException(throwable) (available for Android 2.3 and above).
java5: Generate Java 1.5 compliant code (includes android_legacy flag).
reuse-objects: Data objects will not be allocated, but existing instances will be used (read and write).
sorted_containers:
Use TreeSet/TreeMap instead of HashSet/HashMap as a implementation of set/map.