使用反射循环获取对象的属性和值

时间:2022-10-26 21:08:50

  //反射获取对象所有属性
        Field[]fields = 对象名.getClass().getDeclaredFields();

  //进行遍历
        for (Field field : fields) {

    //获取属性名字
            String name=field.getName();

    //获取属性类型
            String type = field.getGenericType().toString();
            System.out.println("---------------------------------");

    //逻辑判断
            if("class java.lang.String".equals(type)) {      

      //获取get方法
                    Method method=userMessage.getClass().getMethod("get"+ name.substring(0,1).toUpperCase()+name.substring(1));      //获取属性值
                    String value=(String) method.invoke(对象名);
                    if(StringUtils.isNotEmpty(value)) {
                        System.out.println("属性名:"+name);
                        System.out.println("属性值"+value);
                    }              
            }