Это то же самое, что и со всеми родовыми и необработанными типами:
String
В этом специальном случае нет никакой практической разницы между ними Class
и Class
потому, что оба они обозначают неизвестный класс. В зависимости от существующих объявлений компилятор может требовать тип общего типа вместо необработанного типа.
Но: Начиная с Java 1.5, вы должны использовать общую форму, где это возможно. T
ясно заявляет, что вы имеете в виду «неизвестный класс», Class
cleary утверждает, что вы имеете в виду String.class
класс. Сырой Class
может означать и то, и другое .
В конце концов, это не имеет большого значения для компилятора, но имеет огромное значение для того, чтобы сделать намерения вашего кода более понятными и удобными.