1. 反射机制:在泛型为Integer的ArrayList中存放一个String类型的对象
package test; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; public class TestReflect1 { /** * 反射机制:在泛型为Integer的ArrayList中存放一个String类型的对象 * @param args * @throws NoSuchMethodException * @throws SecurityException * @throws IllegalAccessException * @throws IllegalArgumentException * @throws InvocationTargetException */ public static void main(String[] args) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { List<Integer> list = new ArrayList<Integer>(); Method method = list.getClass().getMethod("add", Object.class); method.invoke(list, 1); method.invoke(list, 2); method.invoke(list, "Java反射机制测试"); method.invoke(list, 3); System.out.println(list); } }
运行结果:
2. 反射机制:在泛型为String的ArrayList中存放一个integer类型的对象
package test; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; public class TestReflect2 { /** * 反射机制:在泛型为String的ArrayList中存放一个integer类型的对象 * @param args * @throws NoSuchMethodException * @throws SecurityException * @throws IllegalAccessException * @throws IllegalArgumentException * @throws InvocationTargetException */ public static void main(String[] args) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { List<String> list = new ArrayList<String>(); Method method = list.getClass().getMethod("add", Object.class); method.invoke(list, "Java反射机制测试"); method.invoke(list, "Java反射机制测试"); method.invoke(list, 1); method.invoke(list, "Java反射机制测试"); System.out.println(list); } }
运行结果:
3. 反射机制:在泛型为Map的ArrayList中存放一个integer/String/HashMap类型的对象
package test; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class TestReflect3 { /** * 反射机制:在泛型为Map的ArrayList中存放一个integer/String/HashMap类型的对象 * @param args * @throws NoSuchMethodException * @throws SecurityException * @throws IllegalAccessException * @throws IllegalArgumentException * @throws InvocationTargetException */ public static void main(String[] args) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { List<Map<String, Object>> list = new ArrayList<>(); Method method = list.getClass().getMethod("add", Object.class); method.invoke(list, 1); method.invoke(list, "Java反射机制测试"); Map<String, Object> map = new HashMap<String, Object>(); map.put("name", "zhangsan"); map.put("sex", "男"); method.invoke(list, map); System.out.println(list); } }
运行结果: