[Java]积累

Object转对象和List

需求1:得到实体类或者对应List<Map<String,Object>>

错误用法(报异常):

(实体类)map.get("key")


正确用法(用fastjson转):

实体类 = JSON.parseObject(JSON.toJSONString(map.get("key")),实体类.class)


需求2:得到list

ArrayList<实体类> =(ArrayList<实体类>)map.get("key");

实体:

list<实体>:

List交换元素位置

List<String,String> details = xxx;

if (CollectionsUtils.isNotEmpty(details)){
   Collections.swap(details,1,0);
}

二.shiro权限拦截器

Spring shiro 初次使用小结

三.Mybatis总结

1.MyBatis中的大于号小于号

<&lt;
>&gt;
&&amp;
'&apos;
"&quot;

 

2.Mybatis分页插件PageHelper自动添加limit语句,所以需要全部查询应避免设置pageHelper或者在pageHelper之前进行查询

四.注解

1.

@JsonFormat 默认是标准时区的时间,多出现少8小时的情况 
使用时,按需求加上时区 北京时间 东八区 timezone=”GMT+8” 
作用:后台的时间 格式化 发送到前台

@DateTimeFormat 接受前台的时间格式 传到后台的格式

五.流程控制语句中有多层的情况处理示例

发料单对应一种控制,劳务分包对应两层控制

```

for (Project project : projects) {

   //发料单选择作业队后过滤未分包的工号
   if (filter!=null&&filter.equals("发料单")){
      Project operationCrewProject = projectService.getByOperationCrew(StringUtils.toInteger(param));
      if (operationCrewProject!=null){
         if (!operationCrewProject.getCode().contains(project.getCode())){
            continue;
         }
      }else {
         break;
      }
   }
   //工程出量、工程计价选择作业队后过滤未进行劳务分包的工号
   if(filter!=null&&filter.equals("劳务分包")){
      List<Project> labourSubcontractProjects = projectService.findFromLabourSubcontract(StringUtils.toInteger(param));
      if (CollectionsUtils.isNotEmpty(labourSubcontractProjects)){
         boolean isContinue = false;
         for (Project labourSubcontractProject:labourSubcontractProjects){
            if (!labourSubcontractProject.getCode().contains(project.getCode())){
               isContinue = true;
               break;
            }
         }
         if (isContinue){
            continue;
         }
      }else {
         break;
      }
   }

   JsonTreeData treeData = new JsonTreeData();
   //设置工号全路径
   treeData.setRemark(projectService.getFullNameByProjectId(project.getId(),true));
   treeData.setId(project.getId()+"");
   treeData.setCode(project.getCode());
   treeData.setPcode(project.getParentCode());
   treeData.setText(project.getName());
   treeData.setState("closed");
   if(!project.getIsLeaf() && (project.getCode().length()-7)/3==grade-1){
      treeData.setState("closed");
   }
   if(!project.getIsLeaf() && project.getCode().length() <=10){
      treeData.setState("open");
   }
   Map<String, Object> attributes = Maps.newHashMap();
   attributes.put("grade", project.getGrade());
   attributes.put("pathName", project.getPathName());
   attributes.put("isLeaf", project.getIsLeaf());
   attributes.put("isCompute", project.getIsCompute());
   treeData.setAttributes(attributes);
   treeDataList.add(treeData);
}

```

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值