将列表类型复制到抽象列表

时间:2016-09-30 19:56:42

标签: java abstract-class type-conversion abstract-data-type

我有两个继承自单个抽象类的类。这两个类规定要使用哪种类型的AbstractList,以及ArrayList或LinkedList。

public class ArrayListMergeSort extends MergeSortData
{
public ArrayListMergeSort()
   {
    super();
    data= new ArrayList<String>();
   }
}

我想知道如何根据列表数据的类型在抽象类中创建一个新的临时AbstractList?

2 个答案:

答案 0 :(得分:3)

您可以使用抽象方法在抽象类List中返回MergeSortData

public abstract List<String> getNewList();

然后,在每个子类中实现此方法。

例如,在ArrayListMergeSort

public List<String> getNewList() {
    return new ArrayList<String>();
}

抽象类MergeSortData的任何方法都可以调用getNewList()来获取正确实现的新List

答案 1 :(得分:0)

List<String> newList = data.getClass().newInstance();