Как вызвать public <T> T doit(Class<T> clazz);
с помощью MyClass<String>.class
как clazz, где я не могу создать экземпляр или расширить MyClass.
РЕДАКТИРОВАТЬ: ответы Дэвида Уинслоу и "bmargulies" верны. (MyClass<String>) doit(MyClass.class);
работает для исходного вопроса. Но удивительно, когда метод возвращает MyClass<T>
вместо T
, кастинг больше не будет компилироваться.
Изменить: я заменил List MyClass и добавил условие к моему исходному вопросу.