原因:
Integer类:转化String为int或Integer,多个方法
- Integer.valueOf(String)方法假设String参数表达的是一个数值,会把该数值String转化成Integer。也就是说, Integer.valueOf("123") 得到一个Integer对象,其值是123。
- Integer.parseInt(String)方法假设String参数表达的是一个数值,会把该数值String转化成int。也就是说, Integer.parseInt("123") 得到一个int,其值是123。
- Integer.getInteger(String)方法假设String参数是一个系统属性数值的名称,会读取该系统属性,然后把系统属性的值转换成一个数字。也就是说, Integer.getInteger("12345") 应该是得到 null(假设没有名为12345的系统属性)。
问题解决:
使用
Integer.getInteger(String)造成的NullPointerException,使用Integer.valueOf(String)或Integer.parseInt(String)
后解决。
备注:
使用findbug插件时,会有代码建议:
int可以直接比较;
Integer比较时,会有装箱拆箱
直接比较,使用Integer.parseInt(String)
详解:http://blog.csdn.net/nosxcy/article/details/6989633