下面是项目里用到的代码,set测试里输入的Map数据时,返回的是Object类型没错。但我要求的是返回Long类型,强转Long类型是报错的。听取同学建议,我先将其强转成了Number,之后用.LongValue()方法才解决了问题。
@RequestMapping(value = "/addreport",method = RequestMethod.POST) //增加产品报告
@ResponseBody
public ProductReport add(@RequestBody Map<String,Object> reportMap) {
ProductReport productReport=new ProductReport();
// if(StringUtils.isEmpty((String)reportMap.get("productionactionid"))){
// throw new ResponseException(400,"生产工艺是必须的",ResponseException.ERROR_WRONG_PARAM);
// }
productReport.setProductionActionId(((Number) reportMap.getOrDefault("productionactionid",1L)).longValue());
productReport.setProductionOrderId((String) reportMap.getOrDefault("productionorderid","1"));
//productReport.setTotalCount((Long)reportMap.getOrDefault("totalcount",1L));
//productReport.setProductionOrderId("1");
productReport.setTotalCount(1L);
//productReport.setProductionActionId(1L);
productReport.setFailedCount(1L);
productReport.setUserId(1L);
// productReport.setDescription("1");
//productReport.setImages("1");
//productReport.setVideos("2");
//productReport.setProductionOrderId("2");
this.productReportRepository.save(productReport);
return productReport;
}