我的Java代码中有一行:
a.b=c;
a
,b
& c
都是对象。
当该行抛出NullPoinnterException
时?当a
为null
时,b
为null
或c
为null
或其组合为null
?
答案 0 :(得分:3)
语句a.b = c
将在以下实例中抛出NullPointerException:
a
为空时。b
是基本类型(例如,int),c
是一种可以自动装箱(在这种情况下是未装箱)的类型,以成为原始类型(例如,整数)和c
为空。语句a.b = c
永远不会在以下实例中抛出NullPointerException:
b
为空。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。本评论的第一句话总结了这一点。我希望有所帮助。