这个问题已经在这里有了答案:
已关闭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;