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);
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值