今天遇到了一个bug:
java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to com.dto.resumeHrSearchDTO
出错代码如下:
// json字符串
String json = companyUserResumeSearchHistory.getJson();
// 将json字符串解析为json对象
JSONObject jsonObject = JSONObject.parseObject(json);
// 将json对象转换为自定义对象
resumeHrSearchDTOList.add(ResumeHrSearchDTO(jsonObject));
这样代码可以过编译,但是运行时会报错,错误显示在第三行代码。
意思是不能直接把json对象强转为自定义的resumeHrSearchDTO类对象。
修改后正确代码为:
// json字符串
String json = companyUserResumeSearchHistory.getJson();
// 将json字符串解析为自定义对象
ResumeHrSearchDTO resumeHrSearchDTO = JSONObject.parseObject(json, ResumeHrSearchDTO.class);
// 添加
resumeHrSearchDTOList.add(resumeHrSearchDTO);
结论:需要在parseObject方法第二个参数加上自定义类的Class字节码,才能再转换为自定义的类对象。