/*
* 集合,泛型是String,在集合存储Integer,能否实现
* 反射针对就是class文件
* 反射获取ArrayList的字节码文件对象,add
*
* 反射擦除泛型,反射绕过编译器检查,将不同的数据类型,存储到带有泛型的集合中
*/
import java.lang.reflect.Method;
import java.util.ArrayList;
public class Test1 {
public static void main(String[] args) throws Exception{
ArrayList<String> array = new ArrayList<String>();
array.add("abc");
array.add("bcd");
//获取ArrayList的字节码文件对象
Class clazz = array.getClass();
//直接从class文件中获取add,并运行
Method method = clazz.getMethod("add", Object.class);
method.invoke(array, 123);
method.invoke(array, false);
method.invoke(array, 123.67);
System.out.println(array);
}
}
|
|