复制代码
/*
 * 反射获取成员变量
 */
public class FieldDemo {

    public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, SecurityException {
        // 1、创建class对象
        Class clazz = Class.forName("com.unit1.test.reflect.Student");

        // 2、利用clazz对象获取成员变量Field的对象
        // 一、获取所有公共的成员变量
        Field[] fields = clazz.getFields();
        for (Field field : fields) {
            System.out.println(field);
        }

        // 方式二、获取单个公共的成员变量
        Field field = clazz.getField("idCard");
        System.out.println(field);

        // 方式三、获取所有的成员变量,包括私有的
        Field[] declaredFields = clazz.getDeclaredFields();
        for (Field field2 : declaredFields) {
            System.out.println(field2);
        }

        // 方式三、获取单个的成员变量,包括私有的
        Field declaredField = clazz.getDeclaredField("name");
        System.out.println(declaredField);
    }

}
复制代码
复制代码
public class Student {

    private String name;
    private int age;
    public String idCard;

    public Student() {
    }

    public Student(String name, int age, String idCard) {
        this.name = name;
        this.age = age;
        this.idCard = idCard;
    }

    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 String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    @Override
    public String toString() {
        return "Student [name=" + name + ", age=" + age + ", idCard=" + idCard + "]";
    }
}
复制代码