`Platform`: Windows 7, MinGW, MSYS, Java 1.5
我有节俭0.9.1编译器(预构建用于windows)和源代码。我用Ant来构建java库。 我创建了一个thrift idl并用编译器编译它。生成代码文件没问题。 我在我的项目中添加了这些文件,并添加了slf4j(从他们的站点下载)和libthrift。 除了与覆盖方法相关的错误之外,我之前遇到的大多数错误(导入等)都消失了。 所以基本上抱怨像:
Server类型的clear()方法必须覆盖超类方法
,类似于compareTo
,write
,read
等等。简而言之,它会抱怨所有被覆盖的方法。这是所有thrift编译器生成的代码,我没有改变任何东西。
有任何不兼容性吗?我真的找不到任何提及。我已经尝试删除然后添加库,我也尝试过清理,刷新,验证项目,但错误仍然存在。
我也尝试编译代码(节俭代码),但MinGW也是一个令人头痛的问题。即使我已安装它,也找不到configure
。如果我运行msys
控制台,它可以configure
但不能make
抱怨inttypes.h
不存在(这不在msys include目录中但在MinGW中存在包含目录。)。
任何建议都将不胜感激。
答案 0 :(得分:1)
您使用的是Java 5吗?使用Java 5 @Override
不会在接口上搜索方法,只在超类上搜索。
如果您正在使用Java 5编译器尝试使用更新的javac(最好是7或8)并且看到它有效。
修改强>
不确定这是否在您的Thrift版本中,但是在我看来,在生成代码以指定您希望生成的代码符合Java 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.