您的位置 首页 java

Java学习:Java中的泛型

今天来和大家说一下 泛型

泛型

打开我们的 API 看到在集合后面有一个尖括号,这个里面要填一个引用数据的数据类型,作用就是限定这个集合中只增存储该类型的数据~

下面我来写一段代码给大家解释一下

这是我们之前遍历集合的方式~,现在假设我们想获取集合内对象的属性,修改代码再运行一下~

报错了,类型转换异常~

我们写代码的时候并没有提示错误

编译没有报错

结果运行的时候出错了

稍等

这个bug可以解决

这个时候就体现了 泛型的好处 了—— 可以提高安全性(将运行期的错误转换到编译期) ,省去强转的麻烦 。下面咱们来使用泛型解决这个问题~

泛型的使用方法:

将<>中放的必须是引用数据类型

这三种不属于 person 类型的数据直接就报错~编译就不通过了

怎么样是不是很厉害~

在使用泛型的时候要注意:

前后的泛型必须一致 ,或者 后面的泛型可以省略不写 (1.7的新特性菱形泛型)

下面给大家解释一下 泛型的由来~

我们创建了两个对象类 worker1 和 worker2,这两个类都继承 person 类,然后在写一个工具类 Tool~

现在我们来用Tool工具类来创建一个对象~

编译没有问题,但是运行代码就报错了,因为 早期的 Object 类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题,存在隐患。 所以Java提供了泛型来解决这个安全问题~

现在我们用泛型来解决这个问题,直接把泛型定义在类上——这就是 泛型类

格式

public class 类名<泛型类型1,…>

注意事项

泛型类型必须是引用类型

给 Tool 工具类定义一个泛型(可以是任意字符)这个意思就是,你传进来是什么类型,我就是什么类型~

这下再来看之前的代码,直接就提示我们代码有错误了~

修改之后,代码就可以正常运行了

泛型除了可以定义在类上也可以定义在方法上,称为 泛型方法

格式

public <泛型类型> 返回类型 方法名(泛型类型 变量名)

代码演示

注意:

方法泛型最好与类的泛型一致,如果不一致,需要在方法上声明该泛型

静态方法 必须声明自己的泛型

最后就是可以把泛型定义在接口上—— 泛型接口

格式:

public interface 接口名<泛型类型>

代码演示:

我们定义了一个泛型的接口,用两种方法来实现泛型接口,当然我实现接口的目的就是给类添加功能,没有必要把整个类变成泛型类,所以一般我们推荐使用上面这种方式~

那么

今天就到这里了

伙伴们周末愉快

我是萌新娜娜

立志做一个不翻车的老司机

学习Java的路上请多多指教

大家如果想要更深入了解java相关知识,私信我回复:【Java】 即可知道你们想要知道的java相关问题

文章来源:智云一二三科技

文章标题:Java学习:Java中的泛型

文章地址:https://www.zhihuclub.com/182163.shtml

关于作者: 智云科技

热门文章

网站地图