Student实体类
package ch3;
public class Student {
private int id;
private String name;
public void fun1(){
System.out.println("调用了fun1()方法...");
}
public void fun2(){
System.out.println("调用了fun2()方法...");
}
public Student(){
System.out.println("调用了无参构造方法");
}
public Student(int id, String name) {
super();
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + "]";
}
Demo2测试类
package ch3;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.List;
/**
* java反射 获取对象的属性,方法,构造函数
* @author szw
*
*/
public class Demo2 {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, SecurityException {
Class clazz = Class.forName("ch3.Student");
//获取所有共有的方法,包括继承来的
Method[] methodlist1 = clazz.getMethods();
for(Method m:methodlist1){
System.out.println(m);
}
System.out.println("=====================\n");
//获取所有的方法,与public,private,protect无关,不包括继承来的
Method[] methodlist = clazz.getDeclaredMethods();
for(Method m:methodlist){
System.out.println(m);
}
System.out.println("=====================\n");
//获取所有的共有属性,包括继承来的
Field[] fs1 = clazz.getFields();
for(Field f:fs1){
System.out.println(f);
}
System.out.println("=====================\n");
//获取所有的属性,与public,private,protect无关,不包括继承来的
Field[] fs = clazz.getDeclaredFields();
for(Field f:fs){
System.out.println(f);
}
System.out.println("==========获取无参的构造函数===========\n");
//获取无参的构造函数
Constructor cons1 = clazz.getConstructor();
System.out.println(cons1);
System.out.println("==========获取有参的构造函数===========\n");
//获取有参的构造函数
Constructor cons = clazz.getConstructor(int.class,String.class);
System.out.println(cons);
}
}