public static void main(String[] args) {
try {
int num1 = Integer.valueOf("123456");
System.out.println(num1);//这里正常打印
int num2 = Integer.getInteger("123456");
System.out.println(num2);//抛出空异常
} catch (Exception e) {
System.out.println(e.toString());
}
}
出现上面这种情况,原以为是Integer.getInteger("123456")中"123456"必须使用变量,结果我换成
public static void main(String[] args) {
try {
int num1 = Integer.valueOf("123456");
System.out.println(num1);//这里正常打印
String string = "123456";
int num2 = Integer.getInteger(string);
System.out.println(num2);//抛出空异常
} catch (Exception e) {
System.out.println(e.toString());
}
}
结果果断悲剧。
网上是这么解释的:
Integer.valueOf(String)
通过假设String
表达的是一个数值而把String
转化成数字。也就是说,Integer.valueOf("12345")
得到数字12345
。Integer.getInteger(String)
通过假设String
是一个系统属性数值的名称而把String
转换成一个数字。也就是说,Integer.getInteger("12345")
应该是得到null
。
至今未能弄明白,求解释。。。