浅谈java泛型

来源:互联网 发布:淘宝新店盗图违规扣分 编辑:程序博客网 时间:2024/06/13 20:15

一 背景优势使用泛型机制编写的代码要比那些杂乱的使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性.java泛型对于集合类尤其有用。下面就强制类型转换和安全性两个方面叙述泛型程序设计

二 详述:泛型,其实就是编写的代码可以被不同类型的对象所重用,在java增加泛型类之前,泛型程序设计是靠继承实现的。下面就强制类型转换,安全检查介绍java泛型

//ArrayList类只维护一个Object引用的数组public class ArrayList{  private Object[] elementData;  . . .   private Object get(int i){. . .}  public void add(Object o){. . .}}//这样实现就会有两个问题,当获取一个值时必须进行强制类型转换,例如当arraylist中获取一个String对象的值时,ArrayList olist = new ArrayList();String str = (String) olist.get(0);//当向arraylist添加元素的时候,没有提供任何安全检查,也就是说可以向arraylist添加任何类型的对象元素olist.add(new File("...."));//例如上述代码我们添加一个文件对象,在编译和运行时都不会报错,可是在其他地方如果将get的结果强制类型转换为String,就会产生一个错误


而泛型 提供了一个很好的解决方案 :类型参数  这样我们在定义ArrayList类就有一个类型参数来指示元素的类型:

ArrayList<String> olist = new ArrayList<String>();(注:java SE7以后,构造函数中可以省略泛型类型:ArrayList<String> olist = new ArrayList<>();)

这样使得我们编写的代码有更好的可读性,别人一看就知道,这个数组列表包含的是String对象

0 0