这个问题已经在这里有了答案:




已关闭8年。






我有一个类的列表,它是对动物的扩展的狗的类,并且具有以下类型的列表。

ArrayList<Animals> animal = new ArrayList<Animals>();

现在,我还有另一个类 Puppy ,它扩展了Dogs。

并有一个List<Puppy> puppy = new ArrayList<Puppy>();
现在,我想将列表animal转换为puppy。可以直接做吗?

我可以按照以下方式进行操作。
for (Animals ani: animal){
     puppy.add((Puppy) ani)
}

但是我想要直接类型转换解决方案。是否可以?

最佳答案

不可以,除非您将第一个列表定义为:

List<? extends Animals> animal;

那么您将能够执行以下操作:
List<Puppy> puppy = new ArrayList<Puppy>();
animal = puppy;

09-12 15:41