Я пришел к чему-то, чего раньше не встречал в Java, и мне нужно создать новый экземпляр класса ArrayList во время выполнения без присвоения известного типа, а затем добавить данные в список. Это звучит немного неопределенно, вот пример:
Class<?> c = i.getClass();
Constructor<?> con = ArrayList.class.getConstructor();
ArrayList<?> al = (ArrayList<?>)con.newInstance();
al.add("something");
Теперь причина, по которой я делаю это, или просто использование дженериков, заключается в том, что дженерики уже используются сильно, а переменная "i" в этом примере будет использоваться для использования в качестве типа "?". Я бы предпочел не использовать другой родословный, поскольку это создало бы большую работу для пользователя и было бы намного менее гибким в конечном дизайне. Есть ли способ использовать что-то вроде ниже (Примечание: то, что ниже, не работает). У кого-нибудь есть идеи?
ArrayList<c> al = (ArrayList<c>)con.newInstance();