これに似たものを作成することは可能だと思いますか?
private ArrayList increaseSizeArray(ArrayList array_test, GenericClass) {
array_test.add(new GenericObject()); // instance of GenericClass
return array_test;
}
はい、できます。
private static <T> List<T> pushBack(List<T> list, Class<T> typeKey) throws Exception {
list.add(typeKey.getConstructor().newInstance());
return list;
}
使用例:
List<String> strings = new ArrayList<String>();
pushBack(strings, String.class);
古い質問ですが、これがJava8 +でそれを行う好ましい方法だと思います
public <T> ArrayList<T> dynamicAdd(ArrayList<T> list, Supplier<T> supplier) {
list.add(supplier.get());
return list;
}
次のように使用できます。
AtomicInteger counter = ...;
ArrayList<Integer> list = ...;
dynamicAdd(list, counter::incrementAndGet);
これはリストに数値を追加し、AtomicIntegerのincrementAndGet
メソッドから値を取得します
このようなメソッド参照としてコンストラクターを使用することも可能です:MyType::new
簡単な解決策!
private <GenericType> ArrayList increaseSizeArray(ArrayList array_test, GenericType genericObject)
{
array_test.add(new genericObject());
return ArrayList;
}