您的位置:首页 > 编程语言 > Java开发

java中使用反射往一个泛型是Integer类型的ArrayList中添加字符串,反射的案例1.

2016-04-26 20:36 645 查看
//-------------------------

//废话不多说,直接上代码。代码里面添加了详细的解释。

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

/*
* 在一个ArrayList<Integer>的一个对象,在这个集合里面添加一个字符串该如何实现呢?
* 分析:因为在ArrayList<Integer> 中的Integer数据类型只是为了数据安全,将数据规范后给编译器识别真正在运行的时候,仍然是Object.
*
*
*/
public class ArrayListDemo {
public static void main(String[] args) throws Exception {
// 创建集合对象
ArrayList<Integer> array = new ArrayList<Integer>();
array.add(2);

// 使用反射调用ArrayList的源码
Class c = array.getClass();//集合ArrayList的class文件

Constructor con = c.getConstructor();
Object obj = con.newInstance(); //如果使用此处的obj相当于通过class的无参构造重新创建了一个对象
System.out.println(obj == array); //false,

Method method = c.getMethod("add", Object.class);  //getMethod获取方法
method.invoke(array, "java");  //调用array的add方法传入的值是java

System.out.println(array);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: