gpt4 book ai didi

java - 有界类型参数不能在需要父类的接口(interface)中使用

转载 作者:行者123 更新时间:2023-12-01 07:28:00 25 4
gpt4 key购买 nike

我正在尝试使用泛型在 Java 中执行以下操作:

public class MyType {
public void printBase(Collection<Base> bases) {
for (Base base : bases) {
System.out.println(base.toString());
}
}

public <A extends Base> void myMethod(Collection<A> things) {
// ...
printBases(things); // Error here
// ...
}
}

我得到的错误是这样的:

The method printBases(Collection<Base>) in the type MyType is not applicable for the arguments (Collection<A>).

但是,在这种情况下,A extends Base所以 A 是一个基数。这个方法调用不应该是合法的吗?如果没有,我该如何解决这个问题?

最佳答案

泛型类型是不变的,因此用于 Collection<Base> 的类型与 Collection<A> 不兼容。您可以对 bases 使用上限泛型类型。论据

public void printBase(Collection<? extends Base> bases) {

关于java - 有界类型参数不能在需要父类的接口(interface)中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21167729/

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