class Demo
{
public static void main(String[] args)throws Exception
{
List<Integer> list = new ArrayList<Integer>();
//list.add("abc");//编译器会报错,下面通过反射绕过编译器向里面添加String类型元素
list.getClass().getMethod("add", Object.class).invoke(list, "abc"); //通过反射向集合里添加String类型数据
System.out.println(list.get(0)); //这里可以顺利打印出字符串
}
} 但是下面这样就不行了,不知道是啥原。
import java.lang.reflect.*;
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) throws Exception {
List<String> list = new ArrayList<String>();
//list.add(1);//编译器会报错,下面通过反射绕过编译器向里面添加Integer类型元素
list.getClass().getMethod("add", Object.class).invoke(list, 1); //通过反射向集合里添加Integer类型数据