Добавление Java в общий список неизвестного типа

Я столкнулся с чем-то, с чем я раньше не сталкивался в 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();
13
задан ars265 29 June 2011 в 02:43
поделиться