zoukankan      html  css  js  c++  java
  • 用Java反射输出对象的所有属性的值

    获取对象的类类型

    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.java

    import 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;
        }
    }
  • 相关阅读:
    Day3-python基础3
    批量分发
    Day2-python基础2
    数据类型总结,and字符编码和文件处理
    集合与字符编码
    列表等及其部分讲解
    赋值符号和循环略解
    Python中常量,和基本数据类型,输入输出的方法,基本运算符。
    Python解释器了解,及部分变量
    计算机硬件,操作系统,编程语言
  • 原文地址:https://www.cnblogs.com/infoflow/p/7535862.html
Copyright © 2011-2022 走看看