项目中经常会遇到JSON解析,然后按照类型解析,代码总是会报黄色警告,自己来记录一下解决问题的过程。
一、例如:
String key = RedisKeyConstant.getAccelerationGoalLevelTypeKey(type);
List<AccelerationGoalLevelResponse> result = JSONObject.parseObject(redisServUtils.get(key),List.class);
其中AccelerationGoalLevelResponse为自定义对象,redisServUtils为redis工具类
上面这段代码在IDEA中会有黄色下划线的警告提示,看着非常的难受。
我们可以改成:
String key = RedisKeyConstant.getAccelerationGoalLevelTypeKey(type);
List<AccelerationGoalLevelResponse> result = JSONObject.parseObject(redisServUtils.get(key), new TypeToken<List<AccelerationGoalLevelResponse>>() {}.getType());
这样子就不会出现黄色警告提示了
二、总结升华
不仅仅对于List是有效的,只要有例如泛型的对象皆可以使用这个方式,例如Map,例子和解决方案如图:
String responseStr = "";
Map resMap = JSON.parseObject(responseStr,Map.class);
Type type = new TypeToken<Map<String,Object>>() {}.getType();
Map<String,Object> resMap = JSON.parseObject(str,type);
三、为什么不是异常,只是警告要这样子改呢
因为我是强迫症患者,看到警告浑身难受