江湖开发者 | Java粉
网站地图
首页> Java> java泛型 为什么要有泛型Generic?
2016
02-25

java泛型 为什么要有泛型Generic?

java泛型 为什么要有泛型Generic?


1. 解决元素存储的安全性问题


2. 解决获取数据元素时,需要类型强转的问题


Java泛型可以保证如果程序编译时没有发出警告,运行时就不会

产生ClassCastException异常。


使用泛型注意点:


>. 静态方法中不能使用类的泛型

>. 不能在catch中使用泛型

>. 如果泛型类是一个接口或抽象类,则不可创建泛型类的对象

>. 从泛型类派生子类,泛型类型需具体化。


泛型接口

inteface List<T>

泛型类

class Test<K,V>


其中 T,K,V不代表值,而是表示类型。对于常见的泛型模式,


推荐名称如下:

K: 键,比如映射的键

V: 值,比如List和Set的内容,或者Map中的值

E: 异常类

T: 泛型


泛型方法:方法,也可以被泛型化,不管此时定义在其中的类是不是泛型的。


泛型方法的格式:


修饰符 泛型  返回类型  方法名  参数表  抛出的异常


public <T> T get(int id T t){}


泛型和继承 

String 是Object的子类 ,但List<String>并不是List<Object>的子类


通配符:?

List<?> 是List<String> List<Object>等各种泛型List的父类


有限制的通配符:

<? extends Number>

只允许泛型为Number及Number子类的引用调用

<? super Number>

只允许泛型为Number及Number父类的引用调用

<? extends Comparable>

只允许泛型为实现Comparable接口的实现类的引用调用


Java江湖     
全部评论:

表情验证码,看不清楚,换一张

随机文章

云标签

公众号

微信

分享:分享我们的知识;专注:专注个人技术的提升;