gpt4 book ai didi

java - 使用接口(interface)作为返回类型时出错 [Java]

转载 作者:搜寻专家 更新时间:2023-11-01 01:42:31 25 4
gpt4 key购买 nike

我有这两个 Java 接口(interface):

第一个是:

public abstract interface A {

}

第二个是:

public abstract interface B {
public abstract Set<A> methodName();
}

然后,我将这两个接口(interface)实现为:

public class AImpl implements A {

}

和:

public class BImpl implements B {
private Set<AImpl> p;

public Set<A> methodName() {
return this.p;
}
}

我不明白为什么我会收到以下有关 methodName() 实现的错误:

Type mismatch: cannot convert from Set<AImpl> to Set<A>

非常感谢。

最佳答案

Set<AImpl>不完全一样 什么Set<A> ,您无法转换它。您可以:

  • 将 p 声明为 Set<A>
  • 将 p 声明为 Set<? extends A>
  • 返回Set<AImpl>methodName()

更多详情:如果AImpl然后实现/扩展 A List<AImpl>不实现/扩展 List<A> . List<? extends A>意味着这是扩展/实现 A 的列表。

Wildcards and subtyping in Java Tutorial

关于java - 使用接口(interface)作为返回类型时出错 [Java],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27862236/

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