zoukankan      html  css  js  c++  java
  • 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();
        }
  • 相关阅读:
    关于这个 blog
    P6499 [COCI2016-2017#2] Burza 题解
    CF1172F Nauuo and Bug 题解
    CF1479D Odd Mineral Resource 题解
    CF1442E Black, White and Grey Tree 题解
    CF1442D Sum 题解
    CF1025D Recovering BST 题解
    CF1056E Check Transcription 题解
    CF1025F Disjoint Triangles 题解
    红包算法的PHP实现
  • 原文地址:https://www.cnblogs.com/xwjBlog/p/11557707.html
Copyright © 2011-2022 走看看