Class<T> clazz 和 T clazz 都是表示某个类型的变量,但含义和用法不同。
Class<T> clazz 表示一个 Java 类型 T 对应的 class 对象,并且在使用时需要通过实际的类型参数 T 进行替换。主要用于获取该类型的元信息,如注解、属性、方法等等。例如:
```
Class<String> clazz = String.class; // 表示 String 类型的 class 对象
```
T clazz 表示一个变量 clazz,它的类型是 T。主要用于在方法内部定义一个泛型变量,在方法体内对该变量进行使用。例如:
```
public <T> void print(T clazz) { // 定义一个泛型方法,输入参数为 T 类型
System.out.println(clazz); // 在方法体内使用泛型变量 T
}
```
可以看到,Class<T> clazz 主要用于获取某个类型的 class 对象,而 T clazz 主要用于方法参数列表或内部变量定义中的泛型语法。