java - 如何在接口(interface)中参数化,然后在实现的类中指定泛型类型

标签 java generics

我想要一个界面:

public interface CarManager<T extends Car> {
    public T createCar(Map data);
    public T saveCar(T t);
}

这样我就可以:

public class FiatManager<Fiat> implements CarManger {
    public Fiat createCar(Map data) {
         // ...
    }
    // ...
}

用于扩展 Car 的各种汽车。

但是,当我尝试时,我得到一个错误,提示我没有实现 createCar

准确的错误信息是:

The class 'FiatManager' must be declared abstract or the method Car     createCar(Map data)' must be implemented.

最佳答案

您忘记实现接口(interface):

public class FiatManager implements CarManager<Fiat>

当然,你必须确保Fiat extends Car

此外,(如 @Thilo 正确指出的那样)请注意 FiatManager 不再是通用的,因为它已经被称为处理 Fiat(s) .

关于java - 如何在接口(interface)中参数化,然后在实现的类中指定泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32267334/

相关文章:

java - Android Studio 2.2.2 Gradle项目刷新失败

java - JPA 级联持续存在并且对分离实体的引用会引发 PersistentObjectException。为什么?

符合协议(protocol)可变子集的 Swift 泛型类型

swift - 约束字典的协议(protocol)扩展

Java8 : ambiguity with lambdas and overloaded methods

java - 有没有办法共享不同方法的 swagger 注释?

java - Java Web 应用程序中的层

使用 Process.waitFor() 和 java.lang.InterruptedException 的 java 多线程

c# - 反射 - 检查所有可为空的属性是否有值

java - 如何使用 Class<?> 调用 EnumSet#(all|none)Of?