a- import java.lang.reflect.Constructor;
- import java.lang.reflect.Method;
- import java.util.ArrayList;
- import java.util.List;
- public class ReflectionDemo {
- /**
- * 给List<Integer> 存入String
- */
- public static void main(String[] args) {
- // 需要绕过泛型检测,所以通过反射实现
- List<Integer> list = new ArrayList<Integer>();
- Class c = list.getClass();// 获取Class对象
- list.add(5);
- // list.add("hehe");//无法添加字符串
- try {
- Constructor con = c.getDeclaredConstructor();// 获取构造函数
- List l = (List) con.newInstance();// 并创建实例
- // 获取方法
- Method add = c.getDeclaredMethod("add", Object.class);
- // 添加字符串
- add.invoke(list, "Hello");
- add.invoke(list, "Java");
- System.out.println(list);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
复制代码
|
|