java 泛型的几种用法

Python013

java 泛型的几种用法,第1张

1. public class DAO<T>{

/**

* 泛型类

* 声明类的同时声明泛型类型

* 1.方法的返回值可以是使用声明的泛型类型

* 2.方法的参数也可以是声明类的泛型类型

* 3.方法体内可以使用泛型类型

*/

public T get(Integer id){

return null

}

public void save(T entity){

}

}

2.

/**

* 泛型方法: 在方法声明时, 同时声明泛型. 在方法的返回值, 参数列表以及方法体中都可以使用泛型类型.

* public static <T>T get(Integer id){

* T result = null

* return result

* }

* 把指定类型的数组中的元素放入到指定类型的集合中

*/

泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。

定义泛型方法语法格式如下:

定义泛型方法时,必须在返回值前边加一个<T>,来声明这是一个泛型方法,持有一个泛型T,然后才可以用泛型T作为方法的返回值。

Class<T>的作用就是指明泛型的具体类型,而Class<T>类型的变量c,可以用来创建泛型类的对象。

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

1:什么是泛型?

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

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

2、泛型类

怎么定义泛型类?

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

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

3.怎么使用泛型

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

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

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

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

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