Обобщения являются функцией времени компиляции.Обобщения добавляют проверки во время компиляции, которые могут не иметь никакого значения во время выполнения.Это один из примеров.Вы можете проверять только тип объекта, на который ссылаются, который может быть супертипом в коде.Если вы хотите передать тип T, вы должны сделать это явно.
void someMethod(Class<T> tClass) {
if(String.class.isAssignableFrom(tClass))
или
void someMethod(Class<T> tClass, T tArg) {
Примечание: тип может отличаться,
someMethod(Number.class, 1);