メソッド パラメーターで定義した型の List を作成するメソッドを作成したいと考えています。したがってStudent
、Teacher
、Janitor
、 の 3 つのクラスがある場合、メソッドは、List
渡された型のを作成する必要があります。
public void methodName(TYPE){
List<TYPE> results = new List<TYPE>();
}
何に使うべきTYPE
ですか?
JAVA ジェネリックを使用できます。1 つの方法は、これにより、すべてのクラス タイプを許容できるようにすることです。
public <T> void methodName(Class<T> cl){
List<T> results = new ArrayList<T>();
}
または、より良い方法は、受け入れたいすべてのクラスをインターフェイスから派生させることです。たとえばPerson
、そうすることができます..
public <T extends Person> void methodName(Class<T> cl){
List<T> results = new ArrayList<T>();
}
これにより、 メソッドによって受け入れられるクラスのセットが、 を実装するものだけに制限されPerson
ます。