import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.ArrayList;
//反射的应用
//需求:给定一个ArrayList<Integer> 集合,要求添加字符串数据
public class ArrayListSTest {
public static void main(String[] args) throws Exception {
ArrayList<Integer> array = new ArrayList<Integer>();
//因为泛型的作用,此处编译不通过,泛型是给编译看的,运行时不存在
//array.add("Hello");
//但是底层代码 add方法 ,传入的参数是Object
//所以反射就能实现
//---------------------
//集合ArrayList的class文件对象
Class c = array.getClass();
//获取add方法对象
Method m = c.getMethod("add",Object.class);
m.invoke(array, "Hello");//调用array的add方法,传入的参数是hello
m.invoke(array, "World");
m.invoke(array, "编程很神奇的");
System.out.println(array);
}
}