二十五、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。


相关文章
|
1天前
|
Java 编译器
JavaSE基础 --- 类与对象
JavaSE基础 --- 类与对象
49 0
|
10月前
|
Java
【JavaSE】Java基础语法(十五):继承
1. 继承的实现 继承的概念 继承是面向对象三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新 定义,以及追加属性和方法 实现继承的格式 继承通过extends实现 格式:class 子类 extends 父类 { } 举例:class Dog extends Animal { }
|
10月前
|
Java 程序员
【JavaSE】Java基础语法(四十六):枚举
1. 概述 枚举是一种特殊的数据类型,它列出了一组预定义的常量,并使用标识符来引用这些常量。枚举的用途很广泛,下面列举了几个常见的应用场景: 管理常量:如果您需要在程序中使用一组固定不变的常量,建议使用枚举来管理这些常量。这样可以使得代码更加可读和易于维护。例如,你可以使用一个代表颜色的枚举,来管理程序中可能需要使用到的所有颜色。
【JavaSE】Java基础语法(四十六):枚举
|
10月前
|
Java
【JavaSE】Java基础语法(四十三):反射
概述: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法(包括私有的);对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的); 这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.
|
10月前
|
Java
【JavaSE】Java基础语法(十六):抽象类
1. 抽象类的概述 当我们在做子类共性功能抽取时,有些方法在父类中并没有具体的体现,这个时候就需要抽象类了! 在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽 象类!
|
10月前
|
Java
【JavaSE】Java基础语法(二十二):包装类
1. 基本类型包装类 基本类型包装类的作用 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据常用的操作之一:用于基本数据类型与字符串之间的转换 基本类型对应的包装类
|
10月前
|
Java
【JavaSE】Java基础语法(三十一):可变参数
1. 可变参数 可变参数介绍 可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了 方法的参数类型已经确定,个数不确定,我们可以使用可变参数
|
10月前
|
Java
【JavaSE】Java基础语法(二十一):内部类
1. 内部类的基本使用 内部类概念 在一个类中定义一个类。举例:在一个类A的内部定义一个类B,类B就被称为内部类 内部类定义格式
JavaSE:第十一章:泛型
JavaSE:第十一章:泛型
JavaSE:第十一章:泛型
|
Java Spring
二十六、JavaSE----反射
二十六、JavaSE----反射
二十六、JavaSE----反射