泛型的演化
2016-03-30 21:19
337 查看
public class demo1 { public static void main(String[] args){ ex1 ex1= new ex1("志强Bana"); System.out.println(ex1.getdate()); ex2 ex2 =new ex2(24); System.out.println(ex2.getDate()); } } class ex1{ private String date; public ex1(String date){ this.date=date; } public void setdate(String date){ this.date=date; } public String getdate(){ return date; } } class ex2{ private int date; public ex2(int date){ this.date=date; } public void setDate(int date) { this.date = date; } public int getDate() { return date; } }
以上代码的缺点:创建不同的类型的类,导致类膨胀,重用性太差
public class demo2 { public static void main(String[] args){ ex ex1 =new ex("志强Bana"); System.out.println((String)ex1.getdate()); ex ex2 =new ex("24"); System.out.println((String)ex2.getdate()); } } class ex{ private Object date; public ex(Object date){ this.date=date; } public void setdate(Object date){ this.date=date; } public Object getdate(){ return date; } }
以上代码是运用Object是所有类型的父类,可以接受任何类型,解决了类的膨胀问题。但是缺点:编译正常,运行课程产生异常。
public class demo3 { public static void main(String[] args){ fanxing<String> fx= new fanxing<String>(); fx.setdate("志强Bana"); System.out.println(fx.getdate()); fanxing<Integer> fx1= new fanxing<Integer>(); fx1.setdate(24); System.out.println(fx1.getdate()); } } //创建泛型类 class fanxing <T>{ private T date; public fanxing(T date){ this.date=date; } public fanxing() { // TODO 自动生成构造函数存根 } public void setdate(T date){ this.date=date; } public T getdate(){ return date; } }
通过以上2个代码的缺点,java1.5开始引入了泛型的特性
泛型可以编译时检查类型安全,并且所有强制类型转换都是自动和隐式。
泛型的原理就是“类型的参数化”即把类型看成参数,也就是说所要操作的数据类型看成参数。
泛型可以提高代码的扩展性和重用性。
相关文章推荐
- codeforces 489B
- EasyUI的load,reload,loadData
- CodeForces 366A- Dima and Guards
- 在centos上搭建svn服务器【新浪云搬运】
- 为设置最顶层LinearLayout的width和height会导致:运行时,程序无反应,并显示“已停止”
- 关于大型网站技术演进的思考(三)--存储的瓶颈(3)
- SharedPreferences
- C++作业2
- 20135202闫佳歆--week6 课本第三章学习笔记
- Linux学习之路:命令别名、历史记录和命令查找执行顺序
- js中的作用域链
- poj1611 并查集
- Light Oj 1044 - Palindrome Partitioning(回文串)
- maven的setting.xml文件配置详情
- 常用的7大排序算法汇总
- 设计模式--装饰者模式
- Linux下用C语言实现ls -l的功能
- VMWare下Linux虚拟机的无法全屏的问题解决
- Java解析XML的四种方法--DOM
- 关于大型网站技术演进的思考(四)--存储的瓶颈(4)