gpt4 book ai didi

java - 使用 Java 1.5 编译 thrift 生成的类时出错

转载 作者:行者123 更新时间:2023-11-28 06:36:37 25 4
gpt4 key购买 nike

`Platform`: Windows 7, MinGW, MSYS, Java 1.5

我有 thrift 0.9.1 编译器(为 Windows 预构建)和源代码。我使用 Ant 构建 java 库。我创建了一个 thrift idl 并用编译器编译它。生成代码文件没有问题。我将这些文件添加到我的项目中,然后添加 slf4j(从他们的站点下载)和 libthrift。除了与覆盖方法相关的错误外,我之前遇到的大多数错误(导入等)都消失了。所以基本上它会提示:

The method clear() of type Server must override a superclass method

对于 compareTowriteread 等也类似。简而言之,它会提示所有被重写的方法。这是所有 thrift 编译器生成的代码,我没有更改任何内容。

是否有任何不兼容?我真的找不到任何提及。我尝试删除然后添加库,我也尝试清理、刷新、验证项目,但错误仍然存​​在。

我也曾尝试编译代码(thrift 代码),但 MinGW 也令人头疼。它找不到 configure,即使我已经安装了它。如果我运行 msys 控制台,它能够 configure 但不能 make 提示 inttypes.h 不是存在(不在 msys 包含目录中,但存在于 MinGW 包含目录中。)。

如有任何建议,我们将不胜感激。

最佳答案

您使用的是 Java 5 吗?在 Java 5 中,@Override 不会在接口(interface)上搜索方法,只会在父类(super class)上搜索。

如果您使用的是 Java 5 编译器,请尝试使用更新的 javac(最好是 7 或 8),看看是否可行。

编辑:

不确定这是否在您的 Thrift 版本中,但在我的版本中看起来有一个名为 java5 的标志,您在生成代码时指定它以指定您希望生成的代码是Java 5 兼容

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.

关于java - 使用 Java 1.5 编译 thrift 生成的类时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26677788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com