java - 通用接口(interface)实现不起作用

标签 java generics inheritance

我的界面是:

public interface SalesForceRecordService<T extends SalesForceRecord> {

    T update(T record) throws IOException;
}

我的实现类是:

public class SalesForceRecordServiceImpl<T extends SalesforceRecordImpl> implements SalesforceRecordService {

  @Override
    public T update(T record) throws IOException {
        return null;
    }

}

@Override 给出错误,方法不会覆盖其父类(super class)中的方法。

我无法理解问题所在。

最佳答案

您必须将类型传递给父类(super class),因为它需要一个类型。如果您希望您的 SalesForceRecordServiceImpl 也像您发布的那样是通用的,请将 T 传递给 SalesForceRecordService

试试这个:

public class SalesForceRecordServiceImpl<T extends SalesForceRecordImpl>
        implements SalesForceRecordService<T> {

    @Override
    public T update(T record) throws IOException {
        return null;
    }
}

从它的名称来看,SalesForceRecordImpl 在我看来像是一个具体的实现,所以也许您只是想要这个:

public class SalesForceRecordServiceImpl
        implements SalesForceRecordService<SalesForceRecordImpl> {

    @Override
    public SalesForceRecordImpl update(SalesForceRecordImpl record)
            throws IOException {

        return null;
    }
}

关于java - 通用接口(interface)实现不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26880450/

相关文章:

java - mongo + java + 打开的文件太多

Python 魔法元类创建

java - cookie中保存session id是什么概念?

java - 尝试运行一个带有按钮的简单应用程序

java - 空文件上传到ftp服务器

arrays - 无法使用类型为 'append' 的参数列表调用 '(T)'

c# - C# 中的泛型和继承

java - 泛型类型的injector.getInstance

Java + Groovy 脚本 - 继承

c++ - 虚拟公共(public)模式下从模板类继承的类的原型(prototype)