Java泛型Generic

认识泛型

定义类,接口,方法时,同时声明了一个或多个类型变量,如
泛型类,泛型接口,泛型方法
泛型可以约束在编译阶段能操作的数据类型,并自动检查。
本质原因:把具体的数据类型作为参数传给类型变量
如ArrayList List =new ArrayList();
在这里插入图片描述
E代表element,元素类型,T代表返回值类型,K键类型,V值类型。
一般用E就可以

泛型类

在这里插入图片描述

泛型接口

在这里插入图片描述
在这里插入图片描述

泛型方法

在这里插入图片描述
右边不是泛型方法的原因是E是由它所在的泛型类定义的。
正确的是左边是自己定义的泛型方法。

在这里插入图片描述
下面两个方法中的T可以接收Student【】类,也可以String类。
在最下面的方法中,返回值也可以设置为T,进来什么返回什么。

通配符和上下限

在使用泛型时用,泛型类,泛型接口,泛型方法这三种都是定义泛型
在这里插入图片描述
遇到的问题:(黑色那行)
在这里插入图片描述
解决:下图:用通配符。但是又遇到了新问题。我的本意是让车比赛,有人悄悄把狗放进了(dog不是car的子类)
在这里插入图片描述
解决:泛型上下限
在这里插入图片描述

在这里插入图片描述

泛型支持的类型:引用数据类型

不支持基本类型,只能支持对象类型(引用数据类型)
why?思考原因
在这里插入图片描述
如果这样的话,最后12就交给了object的变量,但是12不是对象。
解决
我们把基本数据类型也包装成对象类型,出现了包装类

包装类

在这里插入图片描述
记忆:int是Integer,char是Character,其余的是首字母大写
例题
在这里插入图片描述
结果为true,原因是推荐的第二种方法实际上返回值是我们已经预先默认创建好的-128到127的对象。所以是一样的地址。
在这里插入图片描述
结果为false。原因是超过127,所以真的new

自动装箱与拆箱

在这里插入图片描述

在这里插入图片描述
所以实际上我们从前写的,如下图蕴含了装箱与拆箱。130此时其实已经装箱为了对象
在这里插入图片描述

包装类新增的功能

基本类型转字符串

在这里插入图片描述
我们事实上采用第三种方案,任意内容加字符串双引号得到字符串。

字符串转基本数据类型

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值