废话少说,直接show code
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
* 暴力反射
*/
public class Test3 {
public static void main(String[] args) throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
Class<User> aClass = User.class;
User user = aClass.newInstance();
//通过反射设置User对象的age
Method setAge = aClass.getMethod("setAge", int.class);
java.lang.Object invoke1 = setAge.invoke(user, 12);
try {
//获取show方法
Method show = aClass.getDeclaredMethod("show");
//暴力反射
show.setAccessible(true);
Object invoke = show.invoke(user);
System.out.println(invoke);
} catch (Exception e) {
e.printStackTrace();
}
}
}
User对象
public class User {
int age;
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
private String show(){
return "User.age:" + age + ",name:" + name;
}
}