泛型

2017-10-05  本文已影响0人  撕裂的我

Java中的集合是可以存储任何类型的数据的,但是当我们在一个集合中存储多种类型时,取出数据时这个对象的编译类型就变成了Object类型,在程序中无法确定一个集合中的元素到底是什么类型的,取出元素时如果进行强制类型转换就很容易出错。
由此引出了“参数化类型(parameterized type)”这个概念,即我们常说的泛型。它可以限定方法操作的数据类型,在定义集合类时,使用,<泛型>的方式指定该类中方法操作的数据类型。

ArrayList<String> list = new ArrayList<String>();  //指定泛型为String

上面这个集合就只能存储String类型的数据,不然在编译的时候就会报错,避免了可能在运行时报错。

class CachePool<T> {    //在创建类的时候,声明参数类型为T
    T temp;
    
    public void save(T temp) {  //在创建save(),指定参数类型为T
        this.temp = temp;
    }
    
    public T get() {    //在创建get()方法时,指定返回值类型为T
        return temp;
    }
}

 class Example {
    public static void main(String[] args) {
        //在实例化对象时,传入参数为Integer类型
        CachePool<Integer> pool = new CachePool<>();
        pool.save(new Integer(1));
        Integer temp = pool.get();
    }
}


参考资料:《Java基础入门》

上一篇 下一篇

猜你喜欢

热点阅读