Integer.getInteger,are you kinding me? 好吧, 我还是没怎么弄明白,求高人解答。。。

    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

 至今未能弄明白,求解释。。。



原文地址:https://www.cnblogs.com/xiaxinggege/p/2297782.html