public class Test7 {
public static void main(String[] args) throws Exception{
ArrayList<String> arrList = new ArrayList<String>();
arrList.add("123");
arrList.getClass().getMethod("add", Object.class).invoke(arrList, 123);
System.out.println(arrList.get(0));
}
}
这样不会出问题,输出:
123
我的理解是这样的..
arrList.getClass().getMethod("add", Object.class).invoke(arrList, 123);这句话虽然把123添加进去了..
存进去的123共占12个字节,存到数组中它是字符型...
但是当你用arrList.get(1)..得这个数组中的索引值为1的时候..编译器从中取1个字节时出错,
取不出来..
但是迭代一下就能输出0,1索引处的值
public class FanXingDemo2 {
ArrayList<String> arrList1 = new ArrayList<String>();
arrList1.add("123");
arrList1.getClass().getMethod("add", Object.class).invoke(arrList,123);
System.out.println(arrList1.get(0));
Iterator it = arrList1.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
输出:
123
123
|