если бы это был обычный класс, то тип можно было бы получить
Type = Class.forName(typeName, false, ClassLoader.getSystemClassLoader());
Но для параметризованных типов так не подходит, как вариант создатели gson используют свою имплементацию ParametrizedType, но чтобы создать сей объект нужно распарсить имя типа и для каждого класса создать Type и инстанцировать ParametrizedType полученным. Однако парсинг становится нетривиальным если тип параметризуется другим параметризованнм типом:
HashMap<String, List<int>>
, есть ли готовые решения, или опять стоить велосипед?
ps. куда смотрят создатели жабы, рекурсивных регекспов у них нет, тип создать через жопу…
Заюзай компилатор - это всего навсего джарчик из JDK, AFAIK без зависимостей.
Генеришь класс из шаблона вида
class BoZo${insert_timestamp_here} {
public static Object createObject() {
return new ${type}();
}
};
подставляешь в ${type} HashMap<String, List<int>>, натравливаешь на класс компилятор, получаешь .class файл, грузишь его класслодером,
вызываешь createObject(). Можно это дело хешировать чтобы не компилировать попусту.
ЗЫ: Щютко.