2016-09-30 6 views
2

私は1つの抽象クラスから継承する2つのクラスを持っています。 2つのクラスは、使用するAbstractListの型(ArrayListまたはLinkedList)を指定します。リストタイプを抽象リストにコピー

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

私はあるリストデータのタイプに基づいて、抽象クラスの新しい一時AbstractListを作ることができるだろうか不思議でしたか?

public abstract List<String> getNewList(); 

はその後、あなたはそれぞれのサブクラスでこのメソッドを実装します。

+0

これで何をしているのかに応じてジェネリックを使用するのは意味があります。詳細については、[Java Generics Lesson](https://docs.oracle.com/javase/tutorial/java/generics/)を参照してください。 –

答えて

3

あなたは抽象クラスMergeSortDataListを返す抽象メソッドを持つことができます。 ArrayListMergeSort、例えば

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

抽象クラスMergeSortDataの任意の方法が正しい実装の新しいListを得るためgetNewList()を呼び出すことができます。

+0

FGITWが勝利しました...これと同じ回答を入力したのと同じように---( –

0
List<String> newList = data.getClass().newInstance(); 
関連する問題