Java Class<?> Создание массива
если как параметр передать Class<?> (например, MyClass.class), можно ли в функции создать ArrayList с элементами этого типа?
Код:
<T> List<T> createList(Class<T> clazz) {
return new ArrayList<T>();
}
return new ArrayList<T>();
}
Код:
<T> List<T> createList(Class<T> clazz) throws InstantiationException, IllegalAccessException {
ArrayList<T> arrayList = new ArrayList<T>();
arrayList.add(clazz.newInstance());
return arrayList;
}
ArrayList<T> arrayList = new ArrayList<T>();
arrayList.add(clazz.newInstance());
return arrayList;
}
Тоесть на самом деле скомпилируется во чтото типа
Код:
<T> List<T> createList(Class<T> clazz) throws InstantiationException, IllegalAccessException {
ArrayList arrayList = new ArrayList();
arrayList.add(clazz.newInstance());
return (List<T>) arrayList;
}
ArrayList arrayList = new ArrayList();
arrayList.add(clazz.newInstance());
return (List<T>) arrayList;
}
Код:
List createList(Class<T> clazz) throws InstantiationException, IllegalAccessException {
ArrayList arrayList = new ArrayList();
arrayList.add(clazz.newInstance());
return arrayList;
}
List list = createList(MyClass.class);
MyClass instance = (MyClass) list.get(0);
ArrayList arrayList = new ArrayList();
arrayList.add(clazz.newInstance());
return arrayList;
}
List list = createList(MyClass.class);
MyClass instance = (MyClass) list.get(0);