Это невозможно, потому что стирание типа данных во время компиляции генериков. Только возможный способ сделать это - написать какую-то оболочку, которая содержит тип, который имеет список:
public class GenericList <T> extends ArrayList<T>
{
private Class<T> genericType;
public GenericList(Class<T> c)
{
this.genericType = c;
}
public Class<T> getGenericType()
{
return genericType;
}
}