什么是泛型?为什么使用泛型?
今天看了几篇文章深有体会,可以说把以前工作中一些情况串起来了 泛型:就是一种不确定的数据类型。 // 比如:ArrayList<E> E就是泛型。 这种不确定的数据类型需要在使用这个类的时候才能够确定出来。 // 泛型可以省略,如果省略,默认泛型是Object类型。 // 泛型的好处: // 1. 省略了强转的代码。 // 2. 可以把运行时的问题提前到编译时期。 为什么要使用泛型? 为了了解这个问题,我们先看下面的代码,代码省略了一些内容,但功能是实现一个栈,这个栈只能处理int数据类型: public class Stack { private int[] m_item; public int pop(){...} public void Push(int item){...} public Stack(int i) { this.m_item = new int[i]; } } 上面的代码运行得很好,但是,当我们需要一个栈来保存String类型时,该怎么办呢?很多人就想到把上面的代码复制一份,把int改成String不就行了。当然,这样做本身是没有任何问题的,但一个优秀的程序员是不会这样做的,因为他想到若以后再需要long、Node类型的栈该怎么做呢?还要再复制吗?优秀的程序员会想到用一个通用的数据类型Object来实现这个栈: public class Stack {