【发布时间】:2012-11-20 20:28:46
【问题描述】:
我的 Java 代码有问题。我有四个(重要的)课程:
public class RDOutput extends OutputType
public class RDAnalysis extends AnalysisProperties
现在我正在尝试在分析属性中创建一个方法:
public abstract void display(ArrayList<? extends OutputType> results);
主要问题列表,ArrayList中的对象会是OutputType的不同子类型。在我的课程 RDAnalysis 中,我尝试进行特定的覆盖:
public void display(ArrayList<RDOutput> results) {
但 eclipse 说:名称冲突:RDAnalysis 类型的方法 display(ArrayList) 与 AnalysisProperties 类型的 display(ArrayList? extends OutputType) 具有相同的擦除,但不会覆盖它
我不熟悉 Java 技巧,我尝试在文档中搜索,但没有找到任何解决此问题的方法。 我的问题是:我正在做的那个技巧(抽象的基本类型和最终函数中的扩展)在 Java 中是否可行(如果是,我该怎么做?)还是我必须做一些枚举来解决这个问题?
【问题讨论】:
-
您还可以查看“Java 泛型:什么是 PECS?”stackoverflow.com/questions/2723397/java-generics-what-is-pecs
标签: java inheritance overriding wildcard