Java基础

泛型

2017-01-25  本文已影响9人  acc8226

Java 5之后提供泛型(Generics)支持,使用泛型可以最大限度地重用代码、保护类型的安全以及提高性能。泛型特性对Java影响最大是集合框架的使用。

对于Java 5之前程序员而言,使用集合经常会面临一个很尴尬的问题:放入一个种特定类型,但是取出时候全部是Object类型,于是在具体使用时候需要将元素转换为特定类型。上述代码第①行取出的元素是Object类型,在代码第②行需要强制类型转换。强制类型转换是有风险的,如果不进行判断就臆断进行类型转换会发生ClassCastException异常。

而泛型的引入可以将这些运行时异常提前到编译期暴露出来,这增强了类型安全检查。

自定义泛型类

public class Queue<T> {                         

    // 声明保存队列元素集合items
    private List<T> items;                      

    // 构造方法初始化是集合items
    public Queue() {
        this.items = new ArrayList<T>();        
    }

    /**
     * 入队方法
     * @param item 参数需要入队的元素
     */
    public void queue(T item) {                 
        this.items.add(item);
    }

    /**
     * 出队方法
     * @return 返回出队元素
     */
    public T dequeue(){                         
        if (items.isEmpty()) {
            return null;
        } else {
            return this.items.remove(0);        
        }
    }

    @Override
    public String toString() {
        return items.toString();
    }

}
上一篇 下一篇

猜你喜欢

热点阅读