package com.example.client_b.ref;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) throws Exception {
Person person = new Person();
person.setAge(11);
person.setName("zhangsan");
test(person);
}
public static void test(Object object) throws Exception {
Class aclass = object.getClass();
//private字段反射
Field ageField = aclass.getDeclaredField("age");
ageField.setAccessible(true);
System.out.println(ageField.getInt(object));
//有参方法反射
Method method = aclass.getDeclaredMethod("sayHi", String.class);
method.setAccessible(true);
System.out.println(method.invoke(object, "张三"));
}
}
class Person{
private int age;
String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person() {
}
private String sayHi(String arg){
System.out.println("hi");
return "你好" + arg;
}
}