黑马程序员技术交流社区

标题: 为什么要使用泛型,这点代码就有所体现. [打印本页]

作者: 心的方向    时间: 2013-11-23 21:32
标题: 为什么要使用泛型,这点代码就有所体现.

public class Test
{

        public static void main(String[] args)
        {
                List list = new ArrayList();
                list.add("a");
                list.add("b");
                list.add("c");
                list.add("d");
                print(list);
        }
        public static void print(List list)
        {
                for(int i = 0; i < list.size(); i++)
                {
                        String str = list.get(i);//此处要进行强转,如果使用泛型则不用
                        System.out.println(str);
                }
        }
}
作者: 0从谷0    时间: 2013-11-27 16:17
泛型是提供给javac编译器使用的,可以限定集合中元素的类型,让编译器挡住源程序中的非法输入,编译器编译带类型说明的集合时会去除掉“类型”信息,使程序运行效率不受影响,对于参数化的泛型类型,getClass()方法的返回值和原始类型完全一样。由于编译生成的字节码会去掉泛型的类型信息,只要能跳过编译器,就可以往某个泛型集合中加入其它类型的数据,例如,用反射得到集合,再调用其add方法即可。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2