快捷搜索: 王者荣耀 脱发

Java获取实体类的属性名和属性值

Field是什么

Field是一个类,位于java.lang.reflect包下。在Java反射中Field类描述的是类的属性信息,功能包括:

    获取当前对象的成员变量的类型 对成员变量重新设值

Field常用方法

getType(): 获取属性声明时类型对象(返回class对象)

getGenericType() : 返回属性声的Type类型

getName() : 获取属性声明时名字

getAnnotations() : 获得这个属性上所有的注释

getModifiers() : 获取属性的修饰

isEnumConstant() : 判断这个属性是否是枚举类

isSynthetic() : 判断这个属性是否是 复合类

get(Object obj) : 取得obj对象这个Field上的值

set(Object obj, Object value) : 向obj对象的这个Field设置新值value

Field获取实体类的属性名和属性值

  1. 获取实体类 返回的是一个数组 数组的数据就是实体类中的字段
  2. 添加setAccessible()因为的字段是用private修饰的
  3. 输出属性名和属性值

实体UserVO

/**
 * @Author charles.yao
 * @Description
 * @Date 2022/12/26 22:45
 */
public class UserVO {
    private String name;
    private String lastName;
    private Integer age;

    public UserVO(String name, String lastName, Integer age) {
        this.name = name;
        this.lastName = lastName;
        this.age = age;
    }

    public UserVO() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

测试类

/**
 * @Author charles.yao
 * @Description
 * @Date 2022/12/26 22:46
 */
public class Test {
    public static void main(String[] args) {
        UserVO userVO  =new UserVO();
        userVO.setAge(11);
        userVO.setLastName("老张");
        userVO.setName("小名");
        //获取useroVo所有字段
        Field[] fields = userVO.getClass().getDeclaredFields();
        try {
            for (Field field : fields) {
                field.setAccessible(true);
                System.out.println("字段名称"+field.getName()+"=字段值"+field.get(userVO));
            }
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }
}

运行结果

字段名称name====字段值小名
字段名称lastName====字段值老张
字段名称age====字段值11
经验分享 程序员 微信小程序 职场和发展