黑马程序员技术交流社区

标题: 在泛型为Integer的ArrayList中存放一个String类型的对象。 [打印本页]

作者: 怪人长    时间: 2016-3-24 22:58
标题: 在泛型为Integer的ArrayList中存放一个String类型的对象。
ArrayList<Integer> list = new ArrayList<Integer>();在这个泛型为Integer的ArrayList中存放一个String类型的对象。


  1. /**

  2. * ArrayList<Integer> list = new ArrayList<Integer>();
  3. * 在这个泛型为Integer的ArrayList中存放一个String类型的对象。
  4. *
  5. * 分析:
  6. * 泛型只在编译期有效,在运行期会被擦除掉,所以用反射的获取其字节码对象,获取add方法进行操作,
  7. * 该方法叫做泛型擦除,也叫作泛型反射;
  8. */
  9. public class Test1 {

  10.         public static void main(String[] args) throws Exception {
  11.                 ArrayList<Integer> list = new ArrayList<Integer>();
  12.                 list.add(111);
  13.                 list.add(222);
  14.                
  15.                 Class clazz = Class.forName("java.util.ArrayList");//获取字节码对象;
  16.                 Method m = clazz.getMethod("add", Object.class);        //获取add方法;
  17.                 m.invoke(list, "abc");
  18.                
  19.                 System.out.println(list);
  20.                
  21.         }

  22. }
复制代码



作者: 11210107    时间: 2016-3-25 09:38
太棒啦赞一个




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