代码如下:
原文地址: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); }