二十五、JavaSE----泛型

简介: 二十五、JavaSE----泛型

泛型:


       泛型其实就是一种参数化的集合,它限制了你添加进集合的类型。泛型的本质就是一种参数化类型。多态也可以看作是泛型的机制。一个类继承了父类,那么就能通过它的父类找到对应的子类,但是不能通过其他类来找到具体要找的这个类。泛型的设计之处就是希望对象或方法具有最广泛的表达能力。


下面来看一个例子说明没有泛型的用法


2.png


这段程序不能正常运行,原因是Integer类型不能直接强制转换为String类型


3.png


如果我们用泛型进行改写后,示例代码如下


4.png


这段代码在编译期间就会报错,编译器会在编译阶段就能够帮我们发现类似这样的问题。


泛型的使用


一般泛型有三种使用方式:1.用泛型表示类        2.用泛型表示接口        3.用泛型表示方法


用泛型表示类


泛型可以加到类上面,来表示这个类的类型


5.png


用泛型表示接口

泛型接口与泛型类的定义及使用基本相同。


6.png


        一般泛型接口常用于生成器(generator)中,生成器相当于对象工厂,是一种专门用来创建对象的类。


用泛型表示方法

7.png


泛型通配符

       List是泛型类,为了表示各种泛型List的父类,可以使用类型通配符,类型通配符使用问号(?)表示,它的元素类型可以匹配任何类型。例如


8.png



上界通配符:<? extends ClassType>该通配符为ClassType的所有子类型。它表示的是任何类型都是 ClassType类型的子类。


下界通配符:<? super ClassType>该通配符为ClassType的所有超类型。它表示的是任何类型的父 类都是 ClassType。


相关文章
|
7月前
|
存储
JavaSE&泛型
JavaSE&泛型
27 1
【JavaSE】Java基础语法(十五):继承
1. 继承的实现 继承的概念 继承是面向对象三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新 定义,以及追加属性和方法 实现继承的格式 继承通过extends实现 格式:class 子类 extends 父类 { } 举例:class Dog extends Animal { }
|
Java 程序员
【JavaSE】Java基础语法(二十):多态
1. 多态的概述 什么是多态 同一个对象,在不同时刻表现出来的不同形态 多态的前提 要有继承或实现关系 要有方法的重写 要有父类引用指向子类对象
|
7月前
|
Java 编译器
JavaSE基础 --- 类与对象
JavaSE基础 --- 类与对象
67 0
|
7月前
|
存储 Java 编译器
JavaSE学习之--类和对象(二)
JavaSE学习之--类和对象(二)
47 0
|
7月前
|
存储 安全 Java
JavaSE基础篇:泛型说明
JavaSE基础篇:泛型说明
|
存储 安全 Java
Javase ------> 泛型
Javase ------> 泛型
56 0
【JavaSE】Java基础语法(二十二):包装类
1. 基本类型包装类 基本类型包装类的作用 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据常用的操作之一:用于基本数据类型与字符串之间的转换 基本类型对应的包装类
【JavaSE】Java基础语法(十六):抽象类
1. 抽象类的概述 当我们在做子类共性功能抽取时,有些方法在父类中并没有具体的体现,这个时候就需要抽象类了! 在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽 象类!
【JavaSE】Java基础语法(二十一):内部类
1. 内部类的基本使用 内部类概念 在一个类中定义一个类。举例:在一个类A的内部定义一个类B,类B就被称为内部类 内部类定义格式