我是在做mybatis一对多的延迟加载出现了这样的问题,我刚开始有UserAccountList的set和get方法,还有有参构造函数(没写无参构造函数),然后报了数组越界异常
我发现可能是延迟加载的原因,先查询user,因为user只有三个属性,而我写的有参构造函数有4个参数,那么在封装结果集的时候会发生数组越界异常,
当我加上无参构造函数的时候不报错了,而当我把所有的构造函数删除了以后也不报错,分析原因:是因为java有默认(隐式)的无参构造函数,而当显示定义有参构造函数时,隐式无参构造函数废弃,此时若想再用无参构造函数,必须显示声明
当我把无参和有参构造函数都删除时,也不报错,说明调用了隐式的无参构造函数
当我把get和set方法都删除时,居然控制台也能正确打印结果,说明可能mybatis框架底层的ORM映射封装了java里set和get方法