一尘不染

为什么int num = Integer.getInteger(“ 123”)抛出NullPointerException?

java

以下代码抛出NullPointerException

int num = Integer.getInteger("123");

getInteger因为它是静态的,所以我的编译器是否调用null?那没有任何意义!

发生了什么?


阅读 434

收藏
2020-03-24

共1个答案

一尘不染

这里有两个问题在起作用:

  • Integer getInteger(String) 不按照你的想法去做
  • null在这种情况下返回
  • Integer到的分配int会导致自动取消装箱
  • 由于Integerisnull,NullPointerException被抛出
    要解析(String) "123"为(int) 123,你可以使用例如int Integer.parseInt(String)
2020-03-24