Имеется запись вида: List list; В абстрактном классе.
В наследниках через конструктор, я его инициализирую. list = new ArrayList(); или list = new LinkedList();
Далее по коду в абстрактном классе имеется создание новых объектов типа List, но будет это ArrayList или LinkedList будет зависеть от объекта list что в начале. Как это реализовать?
Как получить класс из объекта list и создать новый объект этого же класса.
Проверить все возможные варианты
if (list instanceof ArrayList) {
}
if (list instanceof LinkedList) {
}
List newList = null;
try {
newList = list.getClass().newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
Как вариант, можно сделать так:
public static boolean is(final Object object, final Class clas) {
return object.getClass().getSimpleName().equals(clas.getSimpleName());
}
List o = new LinkedList();
System.out.println(is(o, ArrayList.class)); //false
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости