【问题标题】:Combine list of objects with same superclass合并具有相同超类的对象列表
【发布时间】:2014-08-07 11:39:24
【问题描述】:

考虑以下情况:我们有一个超类 Animal 和两个子类 Cat 和 Dog。 我有一个找到所有狗的方法和一个找到所有猫的方法。两者都分别返回狗或猫的列表:

    List<Dog> dogs = getAll(Dog.class);
    List<Cat> cat = getAll(Cat.class);

请在写以下内容时怜悯我:

现在我希望所有的动物都死掉!

但我不想写这样的东西:

facade.kill(dogs);
facade.kill(cats);

我宁愿阅读类似的内容:

facade.kill(dogsAndCats);

但我不能将这两个列表合二为一,例如:

List<Animal> dogsAndCats = ...?

你能帮我解决这个问题吗?

【问题讨论】:

    标签: polymorphism hierarchy superclass


    【解决方案1】:

    编辑 使用 Animal 列表中的 addAll() 方法添加 Dog 和 Cat 列表。

    【讨论】:

    • 对不起,算了。为什么不能在 List 中添加狗和猫?如果您将狗声明为像 Animal dog = new Dog() 这样的动物,则应将其添加到列表中。
    • 因为我有一个从数据库加载所有狗/猫的方法。这些方法分别返回狗和猫的列表。
    • Animal列表中使用addAll()方法添加DogCat列表。
    猜你喜欢
    • 2020-06-20
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多