gpt4 book ai didi

java - 编译 Apache Thrift 生成的实现抽象类的 Java 类时出错

转载 作者:行者123 更新时间:2023-11-29 03:49:10 26 4
gpt4 key购买 nike

我的小组正在尝试使用 Apache Thrift 构建服务器,但我们遇到了奇怪的编译问题。在 Thrift 生成的 Java 文件中,存在以下行:

  public static class Client extends shared.BasicServer.Client implements org.apache.thrift.TServiceClient, Iface {
public static class Factory implements org.apache.thrift.TServiceClientFactory<Client> {

这些被定义为内部类。当我尝试在 Eclipse 中构建项目时,它实际上创建了 .class 文件并且程序运行了,但是 Eclipse 仍然说存在与这些行相关的各种错误,包括以下内容:

Bound mismatch: The type Backend.Client is not a valid substitute for the bounded parameter of the type TServiceClientFactory Backend.java /server/src/thrift line 42 Java Problem

The type TServiceClient cannot be a superinterface of Client; a superinterface must be an interface Backend.java /server/src/thrift line 41 Java Problem

我相信这是因为 org.apache.thrift.TServiceClient 实际上是一个抽象类,而不是一个接口(interface),但 Client 正在尝试实现它。然而,正如我之前所说,该程序编译并运行,但我真的不明白是如何实现的。

有谁知道如何消除/抑制这些错误?我觉得我应该将一些简单的选项传递给我的构建配置。

最佳答案

我在 Eclipse 和 IntelliJ 中遇到了同样的问题。

我发现 thrift 编译器和 lib-thrift 之间的 thrift 版本不同步。

我有 0.6.0 版的 thrift(来自 $sudo port install thrift),我用它来生成我的 java 代码,并且使用的是 lib-thrift-0.8.0.jar

我按照以下说明安装了 Thrift from source, for my platform ,然后重新生成并更新我的 java 生成的 thrift 代码,这些错误得到解决。

关于java - 编译 Apache Thrift 生成的实现抽象类的 Java 类时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9543270/

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