package twelve;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
/**
* 反射超越泛型检查: 在整型数据组里,插入字符。
* 原理:越过类型检查,用原始的Object类来进行加入数据,这个时候,不进行松果
* @author KuKaFei.Hai
* @date 2020/4/26 : 8:52
*/
public class ReflectDemoA {
public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
//定义一个整型的数组,并添加元素
ArrayList<Integer> arrList = new ArrayList<Integer>();
arrList.add(100);
arrList.add(200);
arrList.add(300);
System.out.println("输出整型数组:"+arrList);
//暴力破解
Class<? extends ArrayList> arrClass = arrList.getClass();
Method addRef = arrClass.getMethod("add", Object.class);
//addRef.setAccessible(true);
addRef.invoke(arrList,"哈哈我是字符");
System.out.println("反射后的数组:"+arrList);
}
}