A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


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);
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 分享,应该是分享。而不是提问哦~.

查看全部评分

1 个回复

正序浏览
泛型是提供给javac编译器使用的,可以限定集合中元素的类型,让编译器挡住源程序中的非法输入,编译器编译带类型说明的集合时会去除掉“类型”信息,使程序运行效率不受影响,对于参数化的泛型类型,getClass()方法的返回值和原始类型完全一样。由于编译生成的字节码会去掉泛型的类型信息,只要能跳过编译器,就可以往某个泛型集合中加入其它类型的数据,例如,用反射得到集合,再调用其add方法即可。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马