Java基础 - 泛型

本文都是干货,一些理论上东西我尽可能一笔带过,只写有用的内容。

本篇目录

1- 泛型是什么

2- 泛型的作用

3- 泛型的定义

4- 泛型的使用

泛型是什么

如下代码是一个使用了泛型的实体类,E表示这里类型使用的了泛型,意思是可以为任意类型,也包括引用数据类型。

public class Test<E> {
    private  E test;

    public Test(E test){
        this.test=test;
    }

    public E getTest(){
        return this.test;
    }
}

泛型的作用

在增加泛型之前,泛型相关程序是使用继承实现,因为我们知道Object是所有类的父类,也就是说所有类都继承了Object。所以在泛型之前是将参数和域的类型定义为Object,通过强制类型转换也能达到我们的目的。

但是由于这种程序设计我们无法提前预测数据的类型,也就导致了可以多类型的数据交互,而产生后续强制数据类型转换时无法确定该数据的类型。

在使用类型参数后,编译器就可以检测提供的数据类型是否错误,使程序具有更好的可读性和安全性。

在如下代码中,我没有指定泛型的类型,但是程序依然可以运行,并且无任何异常,但是在将数据读出来后,我们无法判断该数据的具体类型。

List list=new ArrayList();
list.add(1);
list.add("测试");

泛型的定义

定义泛型需要在类名或接口名后指定泛型,格式如:

public class Test<E>{}

这里的大写英文字母并不是必须是E,但在开发规约中,泛型一般使用E、K、V、T来定义泛型。

泛型的使用

定义了泛型后,可在类中代码中即可使用该字母作为数据类型来定义变量。

public class Test<E>{
	public E test;
}

从如上代码中你知道test变量是一个什么类型吗,显然现在无法回答,因为我们没有对它进行初始化,没有对它进行赋值。

Test<String> t=new Test<>();

现在我对它进行了初始化,将泛型E赋予了String类型,所以现在类中的test变量就是String类型。

看到这里你们有没有觉得它很熟悉,好像我们在开发中哪里见到过。没错,Java的很多地方都大规模的使用了泛型,接触最多就是集合框架中泛型,如:

List<String> list=new ArrayList<>();

这是我们在初始化一个ArrayList实例对象,并且指定了它的泛型为String类型,也就是说我们接下来要在List中添加元素的话,只能添加String类型,添加其它的类型元素则会报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值