一、区别
单独的 T 代表一个类型 ,而 Class
- E - Element (在集合中使用,因为集合中存放的是元素)
- T - Type(Java 类)
- K - Key(键)
- V - Value(值)
- N - Number(数值类型)
- ? - 表示不确定的java类型
举例说明:
- Set 表示 集合里 是 T类的实例
- List 表示 集合里 是 E类的实例
- List<?> 表示 集合里的对象类型不确定,未指定
- List 同 List<?> 是一样的。
二、如何创建一个 Class 类型的实例?
就像使用非泛型代码一样,有两种方式:调用方法 Class.forName() 或者使用类常量X.class。
- Class.forName() 被定义为返 回 Class<?>
- 类常量 X.class 被定义为具有类型 Class
,所 以 String.class 是Class 类型的
三、方法中为什么需要 T 修饰呢?
泛型的声明,必须在方法的修饰符(public,static,final,abstract等)之后,返回值声明之前。
public static T request2Bean(HttpServletRequest request, Class clazz) {
}
其中第一个