A·B = C;什么时候会抛出NullPointerException?其中a,b& c都是对象

时间:2014-05-01 15:36:42

标签: java nullpointerexception

我的Java代码中有一行:

a.b=c;

ab& c都是对象。

当该行抛出NullPoinnterException时?当anull时,bnullcnull或其组合为null

3 个答案:

答案 0 :(得分:3)

语句a.b = c将在以下实例中抛出NullPointerException:

  1. a为空时。
  2. 如果b是基本类型(例如,int),c是一种可以自动装箱(在这种情况下是未装箱)的类型,以成为原始类型(例如,整数)和c为空。
  3. 如果有一个点击切断触发并且点切割中的某些内容会抛出NullPointerException。
  4. 语句a.b = c永远不会在以下实例中抛出NullPointerException:

    1. b为空。
    2. c为空,没有自动装箱。

答案 1 :(得分:2)

如果是Java,它只会在a为空时抛出。

答案 2 :(得分:-2)

在Java中,只要点运算符左侧的引用为null,就会抛出NullPointerException。在您的“a.b = c”示例中,该表达式抛出NullPointerException的唯一方法是a为null。如果c为null,之后你尝试与a.b交互,那将抛出NullPointerException,但这与我刚才所说的一致。当您使用类似“a.b.number = 42”的东西与a.b进行交互时,如果“a.b”为null,则会抛出NullPointerException。本评论的第一句话总结了这一点。我希望有所帮助。