java中的泛型是什么,看了你会明白

集合中是可以存放任意对象的,只要把对象存储在集合后,那么这是它们就会被提升成 Object 类型。
  当我们取出一对象,进行相应操作,这时必须采用类型转换。

Collection虽然可以存储各种类型对象,但是实际上通常Collection只存储同一类型的对象。
JDK5后,新增了泛型(Generic)语法,在设计API时可以指定类或方法支持泛型。这样在使用API的时候也变得更加简洁,并得到编译时期的语法检查。
泛型:
  可以在类或方法中预支地使用未知的类型。
tips:
  一般在创建对象时,将未知的类型确定具体的类型。当没有指定泛型时,默认类型为Object类型。

3.2、使用泛型的好处
  1、将运行时期的ClassCastException,转移到编译时期编程编译失败。
  2、避免类型强转的麻烦。
tips:
  泛型是数据类型的一部分,我们将类名与泛型合并一起看做数据类型。

3.3、泛型的定义和使用
泛型用来灵活地将数据类型应用到不同的类、方法、接口当中。将数据类型作为参数进行传递。
3.3.1、定义和使用含有泛型的类:
定义格式:

修饰符 class 类名<代表泛型的变量> { }
在创建对象的时候确定泛型。

3.3.2.含有泛型的方法
定义格式:

修饰符 <代表泛型的变量> 返回值类型 方法名(参数){ } ==> < T >放在返回值类型前面
在调用方法时,确定泛型的类型。

3.3.3、含有泛型的接口
定义格式:

修饰符 interface 接口名<代表泛型的变量> { }
1、在创建类时确定泛型的类型。
2、或者始终不确定泛型的类型,直到创建对象时,才确定泛型类型。
==>如public class MyImp2 implements MyGenericInterface
   MyImp2 my = new MyImp2(); my.add(“aa”);

3.4、通配符
  当使用泛型类或者接口时,传递的数据中,泛型数据不确定,可使用通配符<?>表示。
  使用了泛型通配符后,只能使用Object类中共性方法。集合中元素类型自身方法无法使用。

3.4.1、通配符的基本使用
泛型的通配符:
  不知道使用什么类型的数据类接收的时候,此时可以使用?,?表示通配符。此时只能接收数据,不能往该集合中存储数据。
tips:
  泛型不存在继承关系 Collection list = new ArrayList();这种是错误的。

3.4.2、通配符的高级使用–>受限泛型
泛型的上限:

格式:类型名称<? extends 类> 对象名称
意义:只能接收该类型其子类
泛型的下限:

格式:类型名称<? super 类> 对象名称
意义:只能接收该类型及其父类型

泛型的上限:此时的泛型?,必须是Number类型或者Number类型的子类
  public static void getElement1(Collection<? extends Number> coll){}
泛型的下限:此时的泛型?,必须是Number类型或者Number类型的父类
  public static void getElement2(Collection<? super Number> coll){}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值