获取成员变量

1、Class对象获取成员变量:

Class类的常用方法:

创建Person类:

package pers.reflect.person;

public class Person {
private String name;
private int age;
public String hobby;
public String height;
protected String sex;
String address;

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


@Override
public String toString() {
    return "Person [name=" + name + ", age=" + age + ", hobby=" + hobby
            + ", height=" + height + ", sex=" + sex + ", address=" + address
            + "]";
}
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;
}

}
import java.lang.reflect.Field;

import pers.reflect.person.Person;

public class ReflectDemo {

    public static void main(String[] args) throws SecurityException,
            NoSuchFieldException, IllegalArgumentException,
            IllegalAccessException {

        Class c = Person.class;
        System.out.println("getFields(),获取公共的成员变量:");
        Field[] fields = c.getFields();
        for (Field field : fields) {
            System.out.println(field);
        }

        System.out.println("getField(),获取指定的公共的成员变量:");

        Field hobbyField = c.getField("hobby");
        System.out.println(hobbyField);

        System.out.println("getDeclaredFields(),获取所有的成员变量,与修饰符无关。");

        Field[] fields1 = c.getDeclaredFields();
        for (Field field : fields1) {
            System.out.println(field);
        }

        System.out.println("获取私有的指定的成员变量");

        Field nameField = c.getDeclaredField("age");

        System.out.println(nameField);

    }
}

 2、Field类的常用方法:

(1)返回变量的类型:

(2)返回属性的名字:

猜你喜欢

转载自www.cnblogs.com/zhai1997/p/11390314.html
今日推荐