Java - 包含不同类型的ArrayLists的ArrayList

时间:2017-11-07 06:25:04

标签: java arrays arraylist

我想在这个问题前加上说我对编码非常陌生,而且我所知道的关于编码的一切我自学了,这是我的第一个程序和问题。

现在让我们来看看吧。

说我有七个班:

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>();

如果可能的话。

提前致谢。

0 个答案:

没有答案