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获取实体类的属性名和属性值
- 获取实体类 返回的是一个数组 数组的数据就是实体类中的字段
- 添加setAccessible()因为的字段是用private修饰的
- 输出属性名和属性值
实体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
下一篇:
利用动态代理删除集合中重复元素