美文网首页
JAVA泛型程序设计的意义

JAVA泛型程序设计的意义

作者: OrdinaryKnowing | 来源:发表于2018-12-17 10:32 被阅读0次

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

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

    参数类型的好处

    在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>
    

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

    相关文章

      网友评论

          本文标题:JAVA泛型程序设计的意义

          本文链接:https://www.haomeiwen.com/subject/dakqkqtx.html