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;
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值