黑马程序员技术交流社区

标题: 关于ArrayList的问题 [打印本页]

作者: hbk000    时间: 2015-4-7 23:48
标题: 关于ArrayList的问题
ArrayList<Integer> list = new ArrayList<Integer>();
在这个泛型为Integer的ArrayList中存放一个String类型的对象?
这是一道题,可泛型为Integer怎么可以去存一个String的对象呢?求解?

作者: 夜班心桥    时间: 2015-4-8 00:05
一旦泛型限制了,就只能存储该类型的元素。
作者: 关山明月    时间: 2015-4-8 13:51
好像反射可以。。。。
作者: 小鹏_sJQBO    时间: 2015-4-8 13:55
据我理解,是存不进去的
作者: 海东青    时间: 2015-4-8 16:11
本帖最后由 海东青 于 2015-4-8 16:17 编辑

import java.lang.reflect.Method;
import java.util.ArrayList;

public class test {
/**
  * @param args  杨
  * @throws Exception
  * @throws SecurityException
  * 两种做法,考察的是反射和泛型综合,具体来说是绕过编译时的泛型检查
  */
public static void main(String[] args) throws SecurityException, Exception {
  // TODO Auto-generated method stub
  ArrayList<Integer> list=new ArrayList<Integer>();
  
  list.add(1);
  
  Class c=list.getClass();
  Method method=c.getDeclaredMethod("add", Object.class);
  method.invoke(list,"nihao");
  System.out.println(list);
  System.out.println("-----------------------------------------------");
  System.out.println("l1定义为integer型,l2不限制泛型");
  ArrayList<Integer> l1=new ArrayList<Integer>();
  ArrayList l2=l1;
  l2.add("nihao");
  
  System.out.println(l1);
  
}






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