java遍历实体类的属性和值

代码如下:

原文地址:https://www.cnblogs.com/ynxrsoft/p/7444453.html

实体类:

public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    private String pkid;
    
    private String userName;
    
    private String passWord;
    
    private String roleID;
}

遍历:

public class test {

        public static void main(String[] args) throws Exception{  
            User e = new User();  
            reflect(e);  
        }
        
        public static void reflect(User e) throws Exception{  
            Class cls = e.getClass();  
            Field[] fields = cls.getDeclaredFields();  
            for(int i=0; i<fields.length; i++){  
                Field f = fields[i];  
                f.setAccessible(true);  
                System.out.println("属性名:" + f.getName() + " 属性值:" + f.get(e));  
            }   
        } 
}

输出:

criteria转换entity

public static ResultDO<Boolean> convert(AbstractCriteria criteria, Object target) {
    Class criteriaClazz = criteria.getClass();
    Field[] targetFields = target.getClass().getDeclaredFields();

    for (Field targetField : targetFields) {
        targetField.setAccessible(true);
        String targetFieldName = targetField.getName();
        if ("serialVersionUID".equals(targetFieldName)) {
            continue;
        }
        Class<?> type = targetField.getType();
        try {
            Field sourceField = criteriaClazz.getDeclaredField(targetFieldName);
            sourceField.setAccessible(true);
            Object o = sourceField.get(criteria);
            if (o == null) {
                continue;
            }
            if (type != null && type.toString().contains("Date")) {
                if (!o.toString().equals("")) {
                    targetField.set(target, DatetimeUtil.string2DateCommon(o.toString()));
                }
            } else if (type != null && type.toString().contains("Timestamp")) {
                if (!o.toString().equals("")) {
                    targetField.set(target, DatetimeUtil.string2Timestamp(o.toString()));
                }
            } else {
                targetField.set(target, o);
            }

            sourceField.setAccessible(false);
        } catch (ParseException | IllegalAccessException e) {
            MedChatLogger.error(e);
            return new ResultDO<>(ErrCode.PARAM_ERROR.getErrCode(), DATE_FORMAT_ERROR);
        } catch (NoSuchFieldException e) {
            MedChatLogger.info(e);
            continue;
        }

        targetField.setAccessible(false);
    }
    return new ResultDO<>(true);
}