java 泛型<T> <?>

落日映苍穹つ 2023-06-05 11:18 81阅读 0赞

一.区别

单独的T 代表一个类型 ,而 Class代表这个类型所对应的类, Class<?>表示类型不确定的类

复制代码

复制代码

  1. E - Element (在集合中使用,因为集合中存放的是元素)
  2. T - TypeJava 类)
  3. K - Key(键)
  4. V - Value(值)
  5. N - Number(数值类型)
  6. ? - 表示不确定的java类型
  7. 举例说明:
  8. Set<T> 表示 集合里 T类的实例
  9. List<E> 表示 集合里 E类的实例
  10. List<?> 表示 集合里的对象类型不确定,未指定
  11. List List<?> 是一样的。
  12. 泛型的作用:
  13. 1、用泛型:
  14. Java代码 收藏代码
  15. List<T> list=new ArrayList<T>();
  16. T t=list.get(0);
  17. 2、不用泛型:
  18. Java代码 收藏代码
  19. List list=new ArrayList();
  20. T t=(T)list.get(0);

复制代码

复制代码

二、如何创建一个Class类型的实例?

  1. 就像使用非泛型代码一样,有两种方式:调用方法 Class.forName() 或者使用类常量X.class Class.forName() 被定义为返 Class<?>。另一方面,类常量 X.class 被定义为具有类型 Class<X>,所 String.class Class<String> 类型的。

三、方法中为什么需要 T修饰呢

泛型的声明,必须在方法的修饰符(public,static,final,abstract等)之后,返回值声明之前。

  1. public static <T> T request2Bean(HttpServletRequest request,Class<T> clazz){}

其中第一个是与传入的参数Class相对应的,相当于返回值的一个泛型,后面的T是返回值类型,代表方法必须返回T类型的(由传入的Class决定)

转载于:https://www.cnblogs.com/daijiabao/p/11583053.html

发表评论

表情:
评论列表 (有 0 条评论,81人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java和自定义T

      在编译过程中,对于正确检验泛型结果后,会将泛型的相关信息擦出,也就是说,成功编译过后的class文件中是不包含任何泛型信息的。泛型信息不会进入到运行时阶段。 1.泛型类