java中什么是泛型,怎么用泛型?

Python012

java中什么是泛型,怎么用泛型?,第1张

这是在各种Java泛型面试中,一开场你就会被问到的问题中的一个,主要集中在初级和中级面试中:

1:什么是泛型?

泛型就是广泛的类型也是一种数据类型,而这种数据类型可以是任意类型,编写过程中当中不能确定类型,创建对象时必须指定具体类型,不指定也可以,但是会出现一些错误。

泛型是编译器行为,只能在编译期有效,如果能够跨过编译器,那么泛型就没有任何意义了。

2、泛型类

怎么定义泛型类?

在类后面加<>,<>中可以编写任意长度任意字符,不能是数值。(一般用26个大写英文字母表示)

泛型类 <具体类型> 变量名 = new 泛型类<>()

3.怎么使用泛型

有以下几种使用场景以及放在那种位置

泛型只能定义引用数据类型,而不能使用基本数据类型

泛型类、泛型方法、泛型接口、泛型通配符

例如:作用在类上时( public class Animal <E>{ E pet} ) , 泛型跟在类后边,可以指定用了泛型的类内部的 pet 的类型。

作用在对象上时( Animal<Dog>str = new Animal<Dog>()) , 泛型跟在类后边 , 使得对象类的的 pet 属性为 Dog类型。

1、对于泛型方法来说,是可以接收不同类型的参数,比如下图,使用泛型来操作List集合,然后向List中添加一条数据,看是否可以添加成功,创建泛型方法如图所示。

2、然后在写一个main方法来测试一下这个泛型方法,先向集合中添加一条String类型的数据,打印List集合中的元素,如图所示。

3、上面是往List集合中添加了一个String类型的数据,下图往List集合中添加一条Integer类型的数据并打印,当然也可以自己创建对象进行添加。

4、泛型也是可以限制要使用的参数类型的,比如上面,list集合中,只想加入数字类型的数据,当然也是可以的,只要让类中的T继承Number就行了,如图所示。

5、下面在测试一下,向集合中添加一个Long类型的数据并打印,如图所示。

6、最后输出就完成了。

在java中

泛型类:是在实例化类的时候指明泛型的具体类型。

泛型方法:是在调用方法的时候指明泛型的具体类型。

定义泛型方法时:必须在返回值前边加一个<T>,来声明这是一个泛型方法,持有一个泛型T,然后才可以用泛型T作为方法的返回值,泛型方法不是仅仅可以有一个参数Class<T>,可以根据需要添加其他参数。

定义泛型类时:Class<T>的作用就是指明泛型的具体类型,而Class<T>类型的变量C,可以用来创建泛型类的对象