Короткий ответ: нет способа указать параметр типа. Это потому, что объект Class (скажем, например, List.class, а не просто Class.class) не понимает этот параметр универсального типа - он стирается во время компиляции.
Моя IDE, Intellij IDEA, выдает то же предупреждение. Это слишком агрессивная среда. Вы можете подавить предупреждение с помощью IDEA (оно генерирует аннотацию @SuppressWarnings), но код для его обхода (как, например, умный обходной путь Роберта Мунто) действительно вводит некоторую неприятную конструкцию, просто чтобы избежать некорректного сообщения IDE - JDK делает не рассматривать этот случай как стирание.
РЕДАКТИРОВАТЬ: Учитывая отрицательный голос, я должен по крайней мере оправдать свое мышление здесь.
Подумайте о следующем:
List.class
Это представляет объект класса типа:
Class<List>
Он не может представлять тип:
Class<List<?>>
потому что неизвестно, будет ли данный список иметь общий параметр или каким он будет. Объект List.class должен представлять все типы, вплоть до параметризации Class.
Доказательством того, что JDK не считает это небезопасной операцией, является то, что если вы компилируете код, он не выдает предупреждение.
Так что IDE просто слишком чувствительна. Хотя спрашивающий не указал, какую IDE он использует, я вижу такое поведение с Intellij IDEA 8.1.2.