java遍历一个实体
//遍历order,得到属性值不为空的属性,type:操作类型。0是新增,1是更新 private Map<String, Object> reflect(Order order,String type) throws Exception{ Map<String, Object> map=new HashMap<String, Object>(); Class<? extends Order> cls = order.getClass(); Field[] fields = cls.getDeclaredFields(); for(Field f:fields){ //获取订单表中字段上的不须入库映射的注解 Transient annon = f.getAnnotation(Transient.class); if(annon!=null) { continue; } f.setAccessible(true); if(f.getName().equals("serialVersionUID"))continue; //如果值不为空 if(f.get(order)!=null&&StringUtils.isNotBlank(f.get(order).toString())) { if(f.get(order) instanceof Date) { map.put(humpToUnderline(f.getName()),DateUtil.dateToString((Date) f.get(order))); }else { map.put(humpToUnderline(f.getName()),f.get(order)); } }else if(type.equals("0")) {//新增,获取空值 map.put(humpToUnderline(f.getName()),null); } } return map; } /*** * 下划线命名转为驼峰命名 * * @param para * 下划线命名的字符串 */ public String underlineToHump(String para){ StringBuilder result=new StringBuilder(); String a[]=para.split("_"); for(String s:a){ if (!para.contains("_")) { result.append(s); continue; } if(result.length()==0){ result.append(s.toLowerCase()); }else{ result.append(s.substring(0, 1).toUpperCase()); result.append(s.substring(1).toLowerCase()); } } return result.toString(); } /*** * 驼峰命名转为下划线命名 * * @param para * 驼峰命名的字符串 */ public String humpToUnderline(String para){ StringBuilder sb=new StringBuilder(para); int temp=0;//定位 if (!para.contains("_")) { for(int i=0;i<para.length();i++){ if(Character.isUpperCase(para.charAt(i))){ sb.insert(i+temp, "_"); temp+=1; } } } return sb.toString(); }