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();
        }
  • 相关阅读:
    烂泥:jira7.2安装、中文及破解
    烂泥:VMWare Workation双网卡配置IP地址
    烂泥:centos6 yum方式升级内核
    烂泥:python2.7和python3.5源码安装
    烂泥:zabbix3.0安装与配置
    烂泥:利用awstats分析nginx日志
    烂泥:切割nginx日志
    JavaScript之函数
    Django之根据已经存在数据库中的表自动生成模型
    Django之操作数据库
  • 原文地址:https://www.cnblogs.com/xwjBlog/p/11557707.html
Copyright © 2011-2022 走看看