Map.getOrDefault()的返回类型问题

下面是项目里用到的代码,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;
    }

猜你喜欢

转载自blog.csdn.net/qq_24572475/article/details/82624855
今日推荐