调用类的Class对象的newInstance方法,该方法会调用对象的默认构造器,如果没有默认构造器,会调用失败..
Class<?> classType = ExtendType.class;
Object inst = classType.newInstance();
通过反射获取类Method对象,调用Field的Invoke方法调用函数。
Class<?> clazz = Class.forName("Person");
Object obj = clazz.newInstance();
String methodName = "show";
Method method = clazz.getMethod("show", String.class, int.class);
method.invoke(obj, "zhang", 11);
Class<?> clazz = Class.forName("Person");
Object obj = clazz.newInstance();
String methodName = "staticShow";
Method method = clazz.getMethod(methodName, null);
method.invoke(obj, null);
Class<?> clazz = Class.forName("Person");
// Object obj = clazz.newInstance(); // 没有参数的
Constructor<?> cons = clazz.getConstructor(String.class, int.class);
Object obj = cons.newInstance("zhang", 11);// 带参数的
String filename = "age";
// Field field = clazz.getField(filename);// 获取公共字段,如果是private 会报异常
Field declaredField = clazz.getDeclaredField(filename);// 获取申明的字段
declaredField.setAccessible(true); // 设置java 的访问限制,如果为false,则私有变量不能访问
declaredField.set(obj, 22);
System.out.println(declaredField.get(obj));