假设一种方法:
public boolean setAttribute(){
boolean returnval = false;
object = this.getObject; //suppose this returns null
for(Object obj : object.getObjectsForLoop()){ //<== this will fail
doSomething();
returnval = true;
}
return returnval;
}
现在,假设在程序中的其他地方调用它。这种方法会在第四行失败并且不返回任何内容吗?
答案 0 :(得分:7)
它将抛出NullPointerException
而不是返回任何内容
阅读Exceptions的Java Tutorial曲目以获取更多信息。 这页面上的概念和流程有一个非常好的解释:What Is an Exception?
答案 1 :(得分:4)
如果无法返回有效对象:
object = this.getObject;
这不会返回任何东西。它会抛出一个NullPointerException:
for(Object obj : object.getObjectsForLoop()){
答案 2 :(得分:2)
该方法将使用NullPointerException
突然完成。换句话说:它不会返回任何东西。
答案 3 :(得分:2)
如果object为null,则在迭代器中使用它将触发NullPointerException - 这就是你将得到的。
答案 4 :(得分:1)
这将导致NullPointerException
,因为for
将尝试从null
对象获取迭代器。
答案 5 :(得分:1)
取决于你失败的意思。在您的情况下,它看起来像是throws NullPointerException
。在这种情况下,setAttribute的调用者也将获得NullPointerException。如果你没有在任何地方处理NullPointerException,那么这将在堆栈中返回main并终止你的程序。如果处理NullPointerException,将调用catch块。