我想在这个问题前加上说我对编码非常陌生,而且我所知道的关于编码的一切我自学了,这是我的第一个程序和问题。
现在让我们来看看吧。
说我有七个班:
public class Animal(){
// methods and variables
}
public class Mammal extends Animal {
// inherited methods + new methods
}
public class Reptile extends Animal {
// inherited methods + new methods
}
public class Bird extends Animal {
// inherited methods + new methods
}
public class Dog extends Mammal {
// Constructor assigning super.variables
//inherited methods
}
public class Snake extends Reptile {
// Constructor assigning super.variables
//inherited methods
}
public class Eagle extends Bird {
// Constructor assigning super.variables
//inherited methods
}
我有这3个ArrayLists:
ArrayList<Mammal> mammals = new ArrayList<Mammal>();
ArrayList<Reptile> reptiles = new ArrayList<Reptile>();
ArrayList<Bird> birds = new ArrayList<Bird>();
我想创建一个存储上面3个Arraylists的ArrayList,我该怎么做?
我试过了:
ArrayList<ArrayList<Animal> listOfLists = new ArrayList<ArrayList<Animal>(){
{
add(mammals);
add(reptiles);
add(birds);
}
};
但是我遇到了类型不匹配错误。
请注意:我想声明并初始化列表的ArrayLists,并且,如果可能的话,我希望能够在Animals类中调用方法。
所以,虽然这有效:
ArrayList<Object> listOfLists = new ArrayList<Object>
如果可能,我想避免使用它。
我还想避免使用:
ArrayList<Animal> mammals = new ArrayList<Animal>();
ArrayList<Animal> reptiles = new ArrayList<Animal>();
ArrayList<Animal> birds = new ArrayList<Animal>();
如果可能的话。
提前致谢。