java - "Attempting to use an incompatible return type"接口(interface)继承

标签 java inheritance interface

我遇到了使用继承的不兼容返回类型的问题。

public interface A { }
public interface B extends A { }

public interface C {
    Map<String, A> getMapping();
}

public interface D extends C {
    Map<String, B> getMapping();
}

有没有办法让它工作?

现在编译器告诉我我正在接口(interface) D 上“尝试使用不兼容的返回类型”。

最佳答案

我建议你使用

interface C {
    Map<String, ? extends A> getMapping();
}

这表示 “将 String 映射到 AA 的子类型的映射”。这与 Map<String, B> 兼容.

关于java - "Attempting to use an incompatible return type"接口(interface)继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30878334/

相关文章:

java - 如何在Tess4J OCR项目中指向eng.traineddata

r - 包装fortran程序以在R中使用

java - 为什么可以新建一个接口(interface)数组

python - Python中的"Interfaces": Yea or Nay?

java - 使用包依赖项从命令行创建 .class 文件

java - 正则表达式 - 如何识别字符串 + 空格 + 字符串

java - 尝试在空对象引用上调用 Adapter.notifyDataSetChanged()'

java - 流畅的语法和继承

c# - System.ValueType 是否继承自 System.Object?

Objective-C:如何声明一个对子类可见的静态成员?