无参构造器 + 方法的调用
package com.studio;import java.lang.reflect.Method;class User {private String name;/*无参构造器*/public User() {}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "User [name=" + name + "]";}
}public class ReflectTest {public static void main(String[] args) throws Exception {// 加载类字节码Class<?> clazz = ReflectTest.class.getClassLoader().loadClass("com.studio.User");// 使用默认构造器创建对象Object instance = clazz.getConstructor().newInstance();// 获取方法(方法名+参数类型)Class<?> paramTypes[] = new Class[1];paramTypes[0] = Class.forName("java.lang.String");Method method = instance.getClass().getMethod("setName", paramTypes);// 调用方法(this+参数)Object paramValues[] = new Object[1];paramValues[0] = "小明";method.invoke(instance, paramValues);System.out.println(instance);}
}