【JAVASE学习笔记之泛型】

泛型在集合中使用

泛型在集合中的使用

* 创建集合同时指定集合存储的数据类型

* 指定数据类型时,要么指定左边,要么两边都执行相同的数据类型

* 在JDK1.7之前,必须两边都要指定并且要相同的数据类型

* 在JDK1.7之后,指定左边即可

* 在泛型中没有多态的概念

泛型在集合中使用的好处

* 将运行时错误转换为编译期错误,增强了集合的安全性。

* 省去了数据类型强制转换的麻烦。

 

泛型的定义与使用:

泛型方法

泛型方法概述:

泛型的概述

* JDK1.5新特性。

* 泛型可以使用在方法上,类上,接口上。

* 泛型变量可以理解为是某种数据类型的占位符。

* 泛型变量还可以理解为是某种数据类型的变量。

* 泛型变量的命名规则:只要是合法的标识符就可以,一般使用一个大写字母表示

常用的泛型变量名有:T type E element K key V value

泛型方法的概念

* 在定义方法时定义了泛型变量的方法就是泛型方法

泛型方法的定义格式

* 修饰符 <T> 返回值类型 方法名(参数列表){}

泛型方法的注意事项

* 泛型变量的具体数据类型是由调用者调用方法时传参决定。

* 泛型变量的具体数据类型不能是基本数据类型,如果要使用基本数据类型则需要使用对应的包装类类型。

 

 

泛型类

泛型类的概念

* 在定义类的同时定义了泛型变量的类。

泛型类的定义格式

* class 类名<T>{

// 在该类中可以将泛型变量T当成一种数据类型使用。

}

泛型类的注意事项

* 泛型类泛型变量的具体数据类型是在创建该类对象时由创建者指定。

* 如果创建泛型类对象时没有指定泛型变量的具体数据类型,则默认是Object

* 静态方法不能使用类上定义的泛型变量,如果该方法中要使用泛型变量,则需要将该定义为泛型方法

泛型接口

泛型接口概述

泛型接口的概念

* 在定义接口的同时定义了泛型变量的接口

泛型接口的定义格式

* interface 接口名<T>{

// 可以将泛型变量T当成一种数据类型使用

}

泛型接口的实现方式

* 方式1:实现接口的同时指定泛型变量的具体数据类型。(不够灵活)

* 方式2:实现接口的时不指定泛型变量的具体数据类型,那么此时需要将该实现类定义为泛型类,由使用者创建实现类对象时指定泛型变量的数据类型。(推荐使用)

 

泛型上下限

泛型通配符

? : 泛型通配符,可以匹配任意类型的数据。

? 一般不会单独使用,一般会结合泛型的上下限使用。

? 不能用来定义泛型方法,泛型类,泛型接口

? 不能在方法体中当成一种数据类型使用

泛型上限

? extends Number:可以接收Number或Number子类类型的数据

泛型下限

? super Integer : 可以接收Integer或Integer父类类型的数据

 

猜你喜欢

转载自blog.csdn.net/qq_32798905/article/details/81294034