Возьмите следующее:
public Class<List<String>> getObjectType() {
    // what can I return here?
}
Какое выражение класса буквально можно вернуть из этого метода, который будет удовлетворять дженерикам и компилировать? List.class не будет компилироваться, и не будет List.<String>class.
Если вам интересно "почему", я пишу реализацию Spring FactoryBean<List<String>>, которая требует от меня реализовать Class<List<String>> getObjectType(). Однако это не вопрос Spring.
  edit: Мои жалобные крики были услышаны полномочиями, которые находятся в SpringSource, поэтому Spring 3.0.1 будет иметь тип возврата getObjectType(), измененный на Class<?>, который аккуратно избегает проблемы.
