java中的泛型 T,clas,class>, T
理解泛型就要理解java的组成
好多人对泛型的使用一脸迷糊的原因,就是你对java的基本组成不了解。并且使用这种模式总是给我们一种模式的感觉。
其实,主要静心下来,你就能找到规律,接下面我们先从分析入手,给你们讲解干货。
java 组成:java语言在我们实际开发中有这么几种概念。类,对象,形参,返回类型,返回值。等。因为这节我们主要针对的目标就是这几个。所以暂时列取这几种,
这也是泛型在我们实际开发中常用的地方。那就是大白话来讲。如何用泛型来表示我们这几个概念。泛型如何表示类,如何表示对象。如何表示形参,如何表示返回类型,返回值。
是不是有种突然明白一切的概念。对的,接下来我们就来讲解。用什么特殊符号来表示。讲解之前,在说一下,泛型的生命周期:
java是两种机制的语言。需要两种执行器:1.解释器;2.编译器
以前对这两种概念的模式形式,如何我们就来说一下解释器。这也是我们这次讲解的泛型生命周期。也是说,泛型是生存在解释器之中的一种,编码规范。
这里面就是我们解释.class文件的过程。我们的所有的一切操作都是在这个范围之内进行操作完成的。
好了,讲解了这么多的干货,接下来我们就来分析一下,泛型的几种类型表示吧。
一.区别
单独的T 代表一个类型 ,而 Class代表这个类型所对应的类, Class表示类型不确定的类
E - Element (在集合中使用,因为集合中存放的是元素)
T - Type(Java 类)
K - Key(键)
V - Value(值)
N - Number(数值类型)
? - 表示不确定的java类型
举例说明:
Set 表示 集合里 是 T类的实例
List 表示 集合里 是 E类的实例
List> 表示 集合里的对象类型不确定,未指定
List 同 List> 是一样的。
泛型的作用:
1、用泛型:
List list=new ArrayList();
T t=list.get(0);
2、不用泛型:
List list=new ArrayList();
T t=(T)list.get(0);
上面解释了,什么是类型,什么是类 。什么是类型的类 概念;
二、如何创建一个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){}
其中第一个是与传入的参数Class相对应的,相当于返回值的一个泛型,后面的T是返回值类型,代表方法必须返回T类型的(由传入的Class决定)
上面完整的解释了java的泛型的几种提现。还有什么不明白的嘛,感觉实战起来。