java 来自集合中泛型序列化的bug,难得一遇
背景
jdk1.8
本次事故简介
报错定位
entity
数据库字段
调试断点
图片看完,我们发现本应该是List的地方竟然存着ArrayList。
排查逻辑1:此处属于查询完数据库后的事故
排查逻辑2:查询完数据库后生成的entity数组时,没有出现String转Date的报错,而是当我for循环时,出现的String转Date的报错
排查逻辑3:调试时的数据类型出现异常,本应该是List的地方竟然存着ArrayList
对应代码修改为
这样就避免的bug的发生
bug还原
最终总结:List<?>成了破局关键了。。。我以为反序列化时,字符串会对应序列化为日期类型,结果想当然了,List成功序列化进入数据库,但是反序列化时成了List,哎,额米陀佛
java 来自集合中泛型序列化的bug,难得一遇相关推荐
- 什么是泛型以及在集合中泛型的使用
什么是泛型? 泛型最常与集合使用,因为泛型最开始开始被加入Java就是为了解决集合向下转型一类问题的.如果我们有这样一个需求:定义一个描述类圆,要求圆中的数据类型是不确定的,也就是声名属性的时候,属性 ...
- java操作集合中 concurrentModifyException 异常的原因分析
java操作集合中 concurrentModifyException 异常的原因分析 参考文章: (1)java操作集合中 concurrentModifyException 异常的原因分析 (2) ...
- 声明方法java实际开发中泛型使用需要注意的一些问题
在写这篇文章之前,xxx已经写过了几篇关于改声明方法主题的文章,想要了解的朋友可以去翻一下之前的文章 1.Map<K,V> 声明的泛型类型必须是类,不能是基本类型.如果是基本类型将其写为对 ...
- Java Collection集合 --迭代器 -- 泛型 --List接口案例
案例1 需求:具体要求如下:学生练习 1.定义一个学生类Student,包含三个属性姓名.年龄.性别, 私有成员变量,生成无参,有参构造方法,生成get/set方法并重写toString()方法. 2 ...
- JAVA求集合中的组合
好几个月没弄代码了,今天弄个求组合的DEMO 思路是将集合的每个值对照一个索引,索引大小是集合的大小+2.索引默认为[000...000],当组合后选取的组合值demo为[0100..00].然后根据 ...
- Java 删除集合中指定的元素
使用 Collection 类的 collection.remove() 方法来删除集合中的指定的元素 完整代码 import java.util.*;public class Main {publi ...
- java遍历集合中的元素_java中如何遍历ArrayList集合中的元素并输出
问题: 假设集合ArrayList中存储的元素是整形数字1~5,遍历每个元素,将每个元素顺序输出. 在线学习视频推荐:java教学视频 示例如下:package work10; import java ...
- java List集合中contains方法总是返回false
ArrayList的contains方法 java 今天在用ArrayList类的caontains方法是遇到了问题,我写了一个存放User类的ArrayList 但在调用list.contains( ...
- java项目中怎么查看用的序列_如何在Java应用程序中使用序列化分类器对...
我想使用序列化分类器对新实例进行分类.我找到了这堂课,但我听不懂. arg [2] =类属性名称,arg [3] =基于实例的索引(从原始数据集中进行预测) 这是此类的代码: import weka. ...
最新文章
- AI解梦成为现实 未来还有无限可能
- 少儿python编程培训-全国少儿人工智能Python编程兴趣班
- 【Android 启动过程】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 )
- Python多进程multiprocessing共享数据Value(包括常用的整数、字符串)、列表及字典以及Queue
- python histo 改变 bins 大小_子批次大小python
- 千万不要在深夜提交代码
- 洛谷——P1119 灾后重建
- hdu 3068 最长回文 (Manacher算法求最长回文串)
- 二十.激光、视觉和惯导LVIO-SLAM框架学习之相机内参标定
- dict.get 用法笔记
- Unity整体与单个缩放比例
- 2023年东南大学集成电路设计考研考情与难度、参考书及上岸前辈备考经验
- vscode如何设置大小写转换的快捷键
- 编译原理-8-Bison 语法分析器的生成器
- git提示Can‘t update: no tracked branch
- 所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。
- EChat(简易聊天项目)三、聊天界面UI实现
- mysql中查找出生日期_如何在MySQL中根据出生日期记录显示日期名称?
- ROS2-Gazebo仿真
- 企业微信聊天工具栏怎么开启?如何调整位置?
热门文章
- 哈佛H8、比亚迪S7、传祺GS8、长安CS95发动机横评对比
- 英雄联盟掉线怎么不显示重新连接服务器,win7系统玩英雄联盟掉线总是显示正在尝试重新连接的解决方法...
- Xman资格选拔赛-web
- 收藏:近期已上线或即将上线的热门手游盘点,射击魔幻角色扮演?总有一款适合你
- photoshop输出html网页方法
- 鼠标点击地面人物自动走动(也包含按键wasdspace控制)
- SQL中drop table语句删除数据表
- Windows系统打开ftp链接下载文件方法
- 基于客观事实的 RFM 模型(Python 代码)
- 目标检测算法——收藏|小目标检测的定义(一)