import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class TestM {
public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, NoSuchFieldException, ClassNotFoundException {
Student student = new Student();
student.setAge(22);
Class<? extends Student> studentClass = student.getClass();
Method aaa = studentClass.getMethod("subscribe", String.class, String[].class);
String[] args1 = new String[]{"aaa"};
System.out.println(aaa.invoke(student, "lisa",args1 ));
Class<Student> studentClass1 = Student.class;
Field age = studentClass1.getField("age");
System.out.println(age.get(student));
Field sex = studentClass1.getDeclaredField("sex");
sex.setAccessible(true);
System.out.println(sex.get(student));
Class<?> studentClass2 = Class.forName("Student");
Field staticfield = studentClass2.getField("staticField");
System.out.println(staticfield.get(null));
Field[] fields = studentClass2.getFields();
for (Field field : fields) {
System.out.println("属性类型:"+field.getType()+"\t"+"属性方法:"+field.getName());
}
}
}
public class Student {
public String name;
public int age;
public static String staticField = "STATICFIELD";
private String sex;
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;
}
public static String getStaticField() {
return staticField;
}
public static void setStaticField(String staticField) {
Student.staticField = staticField;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int subscribe(String name, String... args){
System.out.println("方法被调用,参数:"+name);
return 3;
}
}