您的位置:首页 > 编程语言 > Java开发

java.lang.NullPointerException在Mybits下的异常

2018-03-08 11:52 501 查看
    前几天在用SSM框架做开发时报空指针异常,潜意识得就去寻找那个数据没有传进来,可是检查了好久都发现每个数据都传进来了,最后仔细看报错文件发现是Mybits的xml出错,再往下翻发现是POJI中的错误。
   类似于



pass这个属性我定义地是Integer,但是下面set和get中却是int
报错如下:



我当时想都没想就把get和set方法改为Integer,结果问题就解决了,但是为什么改为Integer就行了?
这个问题有两种解决方法:
1 定义pass时用int定义就行,这样无论你get和set是Integer还是int都不会报错;
原因在于int是有默认值的,默认为0;而Integer这种包装类是没有初始值的;
这样哪怕你的get和set是Integer,会自动发生装箱操作,所以不会报错;
2如果pass定义为Integer了,那它的get和set就必须也是Integer;
为什么呢,这个问题我理了一遍才清楚:
如果pass定义为Integer,因为没有默认值,所以为null,当下面用到get和set如果get和set是int的,就得自动发生拆箱操作,但是并不存在这个值让你去拆箱;所以会报错;
而无论你是否会使用get,在Mybits的xml中只要你的动态SQL中有if,如下:



注:上图是我找错误时,不改POJO,只注释掉pass的动态SQL也就不报错了;

Mybits就会自动调用这个属性的get,所以发生了报错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐