之前在参与公司RPC框架开发过程中,使用java泛型编写了RPC客户端模块的相关代码。由于泛型代码相关知识应用程序员除了在使用相关集合时有用到外,其他地方很少用到,今天是2016年元旦刚好有时间总结一下java泛型的相关知识,顺便做一下笔记方便自己回顾,也便于和大家交流学习。
(一):为什么要用泛型?
很多人会问泛型从语法层面上讲感觉很复杂,尤其是边界通配符泛型语法非常抽象,为什么要用泛型呢?
因为泛型语法相比使用Object对象实现的“泛型”可以使程序具有更好的可读性和安全性
其实泛型属于java的一种语法糖,使用泛型可以大大降低程序的复杂性提高程序的健壮性。
在java引入泛型类型之前,泛型程序设计是使用继承实现的,
/**
* java 1.5添加泛型机制之前 java的泛型是通过Object进行转换的
* @author Administrator
*
*/
public class ArrayList_Object {
private Object[] elementData;
//...
public Object get(int i){
//...
}
public void add(Object o){
//...
}
}
使用这种方式会带来两个问题
(1) 添加值没有类型检查,可以向数据中添加任何值