gpt4 book ai didi

java - 使用不同的返回类型覆盖(通用集合)

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

请帮我解决以下问题:

  1. Cat必须扩展Animal(保持继承);
  2. Animal.getAll() 必须返回所有动物(猫、狗等),Cat.getAll() 必须仅返回猫(不要改变签名)。

我已经尝试过,但失败并出现错误返回类型与第 8 行的 Animal.getAll() 不兼容

class Animal {
public static List<Animal> getAll() {
return new ArrayList<Animal>();
}
}

class Cat extends Animal {
public static List<Cat> getAll() {
return new ArrayList<Cat>();
}
}

最佳答案

将第 2 行更改为:

public static List<? extends Animal> getAll() {

它会起作用的。请参阅Java Wildcards in Generics了解更多信息

关于java - 使用不同的返回类型覆盖(通用集合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24309495/

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