用Java反射输出对象的所有属性的值
2017-05-29 22:58
2346 查看
获取对象的类类型
Class cls = obj.getClass();
用类类型获取属性数组
getFields()获取的是共有属性getDeclaredFields()可以获取所有属性
Field[] fields = cls.getDeclaredFields();
遍历属性数组,将属性设置为外部可见,然后输出
for (Field field:fields) { field.setAccessible(true); try { System.out.println(field.getName()+":"+field.get(obj)); } catch (IllegalAccessException e) { e.printStackTrace(); } }
完整代码:
PrintAllFields.javaimport java.lang.reflect.Field; public class PrintAllFields { public static void printAllFields(Object obj){ Class cls=obj.getClass(); Field[] fields=cls.getDeclaredFields(); System.out.println("共有"+fields.length+"个属性"); for (Field field:fields) { field.setAccessible(true); try { System.out.println(field.getName()+":"+field.get(obj)); } catch (IllegalAccessException e) { e.printStackTrace(); } } } public static void main(String[] args) { Student student=new Student(); student.setId(2014222); student.setName("李利"); student.setAge(22); student.setSex(1); student.setGrade(3); PrintAllFields.printAllFields(student); } }
Student.java
public class Student { private int id; private String name; private int age; private int grade; private int sex; 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; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getGrade() { return grade; } public void setGrade(int grade) { this.grade = grade; } public int getSex() { return sex; } public void setSex(int sex) { this.sex = sex; } }
相关文章推荐
- 使用ToStringBuilder输出对象所有属性以及对应的值-java笔记
- 利用java反射来实现输出对象的所有属性值
- 使用java反射技术完成对象所有属性值的输出
- 输出一个对象的所有属性的值,可以不用反射机制,用JSON处理更方便
- 使用java反射技术完成对象所有属性值的输出
- Java循环一个对象的所有属性,并通过反射给这些属性赋值/取值
- 使用java反射技术完成对象所有属性值的输出
- 通过自定义元注释将java对象的所有属性以字符串“字段中文:值”输出
- java中使用反射获取对象的属性和属性值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- Java数组反射实现动态的判断一个对象书否是数组,并且对数组进行拆包输出 。。
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- 笔记:javascript通过反射和遍历,访问对象的所有属性,及 按引用/按值传递
- C#通过反射获取对象属性,打印所有字段属性的值
- 反射机制_介绍_Class对象获取_动态操作_构造器_方法_属性JAVA211-212
- Java -- 利用反射实现对象之间相同属性复制BeanUtil
- java进阶之反射:反射基础之如何获取一个类以及如何获取这个类的所有属性和方法(1)