java - 摘要列表<人>

标签 java android arraylist abstract-class

更新:我的类比这更复杂,我只是卡在 ArrayList 行

我有以下类(class):

class CatList {

    List<Cat> cats = new ArrayList<Cat>();

}

class DogList {

    List<Dog> dogs = new ArrayList<Dog>();

}

其中 Cat 和 Dog 都是数据类。

但我想创建一个抽象类:

abstract class AnimalList {

    List<???> animals;

    AnimalList(Class animal) {

        animals = new ArrayList<???>();

    }
}

这样我就可以继承我的类

AnimalList CatList = new AnimalList(Cat);
AnimalList DogList = new AnimalList(Dog);
AnimalList CowList = new AnimalList(Cow);

希望这更有意义。因此我的问题是什么是???位?

最佳答案

使用类型参数可能会解决您的问题 - 对不同类型使用相同的类 - 无需继承:

public class AnimalList<T> {
  private List<T> list = new ArrayList<T>();

  public void add(T animal) {
    list.add(animal);
  }
  // more methods
}

现在您可以参数化人和动物的实例:

AnimalList<Cat> catList = new AnimalList<Cat>();
catList.add(new Cat());
AnimalList<Dog> dogList = new AnimalList<Dog>();
dogList.add(new Dog());

关于java - 摘要列表<人>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11702479/

相关文章:

java - XMLInputFactory 是线程安全的吗?

java jdbc mysql : how to store credentials in properties file with special characters?

java - 如何在java中获取JSON对象的所有节点和子节点?

android - 如何将 ORMLite 导入到我的 Android 项目中?

java - 根据值排序数组列表

java - Backstack中找不到从xml添加的 fragment

android - 内存不足错误 : bitmap size exceeds VM budget

android - Android 应用程序和服务器之间哪个更好? socket 还是定时器?

java - HashMap ArrayList 在 AutoCompleteTextView 建议中显示相同的值两次

java - 将 ArrayList 中创建的对象传递给另一个类的另一个方法