Java泛型

一、泛型
泛型,即“参数化类型”,泛型只在编译阶段有效。

使用泛型有以下好处:
(1)可以统一数据类型,便于操作;
(2)将运行时的异常提前到了编译时,提高了效率;
(3)避免了强制类型转换;
(4)实现代码的模板化,把数据类型当作参数传递,提高了可重用性。

二、泛型的使用
1、泛型类:泛型类用于类的定义中,被称为泛型类。通过泛型可以完成对一组类的操作对外开放相同的接口。最典型的就是各种容器类,如List、Set、Map。
泛型类的最基本写法:

class 类名称 <泛型标识:可以随便写任意标识号,标识指定的泛型的类型>{
  private 泛型标识 /*(成员变量类型)*/ var; 
  .....

  }
}

注意:
(1)泛型的类型参数只能是类类型,不能是简单类型;
(2)不能对确切的泛型类型使用instanceof操作。

2、泛型接口:
泛型接口与泛型类的定义及使用基本相同;泛型接口常被用在各种类的生产器中。

3、泛型方法:
(1)创建在放方法上的泛型是在真正调用方法时确定,一般都由传入的参数确定,包含这个方法的类创建对象时,并不会确定方法上的类型,一定在调用方法时确定。
(2)无论何时,如果你能做到,你就该尽量使用泛型方法。也就是说,如果使用泛型方法将整个类泛型化,那么就应该使用泛型方法。
(3)另外对于一个static的方法而已,无法访问泛型类型的参数。所以如果static方法要使用泛型能力,就必须使其成为泛型方法。

三、使用泛型注意
1.泛型在使用时确定,但如果提前知道泛型类型也可以在定义时确定泛型类型,但这样做体现不了泛型的优势与强大。
2.泛型不存在继承,即在确定了泛型时,其操作中相对应的泛型必须一致。不能存在继承或者多态的关系,即<>内的类型必须一致,不能不同。但使用泛型的对象依然是可以存在继承或者多态的关系,即<>外的东西存在继承或者多态。
3.泛型只能是引用类型,不能是基本类型。

四、泛型的上限和下限以及通配符
当使用泛型类或者接口时,(注意是使用泛型,不是定义泛型,两者之间存在很大差异)传递的数据中,泛型类型不确定,可以通过通配符<?>表示。但是一旦使用泛型的通配 符后,里面的只能使用Object类中的共性方法,集合中元素自身方法无法使用。

五、泛型上限和下限
当使用通配符时,你不想?代表所有类型,那样很没有意义,你想对类型有一定限定,这时就要使用到上限和下限了。<? extends 类名>意思是说,?能代表的类型只能是指定类的子类,所以叫泛型上限。<?super 类名>意思是说,?能代表的类型只能是指定类的父类,所以叫泛型下限。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值