JAVA泛型程序设计的意义

为什么要使用泛型程序设计

泛型程序设计意味着编写的代码可以被不同类型的对象所重用

参数类型的好处

在Java增加泛型类以前,泛型程序设计是使用继承实现的。ArrayList类只维护一个Object引用的数组:

public class ArrayList
{
  private Object[] elementData;
  ...
  public Object get(int i){...}
  public void add(Object o){...}
}

这样有两个问题:1.取得一个值得时候必须进行强制类型转换,2.没有错误检查,可以向数组里添加任意类的对象。

ArrayList files = new ArrayList();
...
String filename = (String) files.get(0);//手动强制类型转换
...
files.add(new File("..."))//没有错误检查

泛型提供了一个更好的解决方案:参数类型。ArrayList有一个类型参数来指示元素的类型:

ArrayList<String> files = new ArrayList<String>();
//也可以在构造参数中省略泛型类型。
ArrayList<String> files = new ArrayList<>();

提供了类型参数,编译器可以很好地利用这个类型来进行判断,当调用get的时候就不要强制类型转换,编译器就知道返回的类型为String。

String filename = files.get(0);

同时还提供了错误检查,当插入类型不为String时,编译器会提示错误。

files.add(new File("..."));//can only add String objects to an ArrayList<String>

参数类型的魅力在于:使得程序有更好的可读性安全性

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容