Это невозможно. См. документация по javassist :
Обобщения Java реализованы методом стирания. После
компиляция, все параметры типа сброшены. Например, предположим,
что ваш исходный код объявляет параметризованный тип Vector:
Vector<String> v = new Vector<String>();
:
String s = v.get(0);
Скомпилированный байт-код эквивалентен следующему коду:
Vector v = new Vector();
:
String s = (String)v.get(0);
Итак, ваш метод после компиляции будет выглядеть следующим образом:
public List queryList(Long id) { return new ArrayList();}
За сценой, если необходимо, происходит приведение к нужному типу. См. Также: Описание типа Erasure в Java