这是一个由两部分组成的问题。
我有两个类:Animal
和 Vehicle
,我将它们实例化为对象。 Animal
包含两个实例变量:numLegs
和 animalName
,Vehicle
包含一个实例变量:numTires
,这两个类都包含 getter 和 setter。
我有一个通用类Box
,它包含一个Animal
或一个Vehicle
。
假设我想创建一个由盒子组成的Arraylist
。所述Arraylist
中的每个Box
将专门保存类型Animal
或专门类型Vehicle
。
例如:对于纯动物来说,这看起来会产生以下效果:
List<Box<Animal>> list = new ArrayList<Box<Animal>>();
list.add( new Box<Animal>( new Animal( "fluffy", 4 ) ) );
(1)。盒子类应该是什么样子?
另外,假设我想对列表中的动物执行 getter 操作。
如:System.out.println(list.get(0).getName());
(2)。我该如何正确处理这个问题?
最佳答案
我不太确定你想要什么,但如果你想要一个通用类型的 Box
类,它可能需要看起来像这样:
public class Box<T extends SuperclassOfAnimalAndVehicle> {
T myModeOfTransport;
Box(T myModeOfTransport) {
this.myModeOfTransport = myModeOfTransport;
}
public T getModeOfTransport() {
return myModeOfTransport;
}
}
这一行:list.get(0).getName()
但是不会这样做。您必须获取 Box
包含的对象。因此,使用我的示例,它将是 list.get(0).getModeOfTransport().getName()
,假设 Vehicle
和 Animal
都有 getName()
方法。
话虽这么说,我真的很困惑为什么这是必要的。也许如果您解释一下更大的情况,我可以给您一个更完整的答案。
关于java - 创建通用数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10466383/