黑马程序员技术交流社区

标题: 为什么c1不行,c2可以? [打印本页]

作者: 江南雨    时间: 2013-6-6 14:49
标题: 为什么c1不行,c2可以?
  1.         public static void main(String[] args) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
  2.                 // TODO Auto-generated method stub
  3.                  ArrayList<String> c1=new ArrayList<String>();
  4.                 //c1.add(1);
  5.                 Method  method=c1.getClass().getMethod("add",Object.class);
  6.                 method.invoke(c1, Integer.valueOf(10));
  7.                 System.out.println(c1.get(0));
  8.                
  9.                
  10.                
  11.                  ArrayList<Integer> c2=new ArrayList<Integer>();
  12.                 Method  method1=c2.getClass().getMethod("add",Object.class);
  13.                 method1.invoke(c2, "ac");
  14.                 System.out.println(c2.get(0));
  15.         }

  16. }
复制代码
为什么integer不可以转成String ,但是String却可以转换成integer类型的呢?
作者: 刘海芳    时间: 2013-6-6 21:46
个人理解:
泛型虽然会擦除”类型”信息,但是泛型的另一个好处就是内部类型转换,所以在Integer在泛型内部机制转换是出错了...
作者: 花心々小土豆    时间: 2013-6-6 22:31
楼主这代码怎么搞的,不能这么干啊,就一部分怎么看!
作者: 李九一    时间: 2013-6-15 07:30
不能这样转换的
作者: 孙百鑫    时间: 2013-6-22 01:15
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~




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