我有两个继承自单个抽象类的类。这两个类规定要使用哪种类型的AbstractList,以及ArrayList或LinkedList。
public class ArrayListMergeSort extends MergeSortData
{
public ArrayListMergeSort()
{
super();
data= new ArrayList<String>();
}
}
我想知道如何根据列表数据的类型在抽象类中创建一个新的临时AbstractList?
答案 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();