泛型

泛型

泛型:

 

集合中存储了不同类型的对象,取出时,容易在运行时时期发生ClassCastException类型转换异常。

 

为了避免这个问题的发生。

 

如果在存储的时候就明确了集合要操作的数据类型,这样取出就没有问题了

 

就需要在定义集合时,就立刻明确元素的类型。

其实借鉴于数组。

 

可以通过<>来明确元素的类型。

 

泛型的好处:

1,将运行时期出现的ClassCastException问题,转移到了编译时期。

2,避免了强制转换的麻烦。

 

泛型其实是JDK1.5版本以后出现的一个安全机制。

 

泛型其实给编译器使用的。

 

泛型的表现形式就是<>

 

编码时,什么时候使用泛型呢?

 

只要用到的类或者接口的旁边有<>时,就要明确具体类型。

 

泛型的使用其实就是 给<>传递实际参数,而这个参数就是一个具体引用数据类型。

 

 

什么时候使用泛型类呢?

当类要操作的引用数据类型不确定的时候,可以使用泛型来定义,

也就是定义一个类型参数。

具体要操作什么类型的对象,有使用该类的使用者来明确,将具体的类型做为实际参数传递给<>.

 

 

当泛型定义在类上。该泛型作用于整个类。

当该建立对象时,就明确了具体类型。

那么凡是使用了类上定义的泛型的方法,操作的类也就固定了。

 

可以将泛型定义在方法上。

泛型方法。

 

 

当类中定义static方法时,静态方法是不可以直接方位类上的泛型,

因为类上的泛型只有通过建立对象才可以明确具体类型。 

 

所以静态方法如果操作的引用数据类型不确定,只能将泛型定义在方法上。

 

在静态方法上定义泛型,必须定义在static关键字之后。

 

 

当方法中操作的应用数据类型不确定,而且和对应的对象执行的类型也不一定一致。

这时就将泛型定义在方法上。

 

泛型:通配符:?  代表任意类型。

 

定义集合要保证左右两边的类型一致。

//两边只有一边定义泛型,也是可以支持,至少新老版本兼容。但是一样会出现,安全提示信息。

 

泛型的限定:

? extends E:接收E类型或者E的子类型。

super E:接收E类型或者E的父类型。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值