Java Map——getOrDefault处理空字符串转化问题
背景
- 在一次项目开发中,使用Map接收参数;
- 在参数中,需要将参数值转化成int格式;
代码如下
int hashbord = Integer.valueOf(minerMap.getOrDefault("hashbord", "0").toString());
错误如下
- 当参数值为空字符串时,Map.getOrDefault不能实现自动赋值为默认值,因为空字符串是正常地Map值,转化错误
解决办法
- 先判断Map值是否为空,然后再进行转化
int hashbord = Integer.valueOf(ObjectUtil.isNotEmpty(minerMap.get("hashbord")) ? minerMap.get("hashbord").toString() : "0");