为什么要在继续之前检查所有条件?

时间:2016-04-03 22:43:37

标签: java android if-statement

嗨,我是编程的初学者。我正试图从udacity学习Android开发。

Cursor cur = someFunction();
    if(cur != null){
    Intent intent = new Intent(getActivity(), two.class);
    intent.setData(cur.getLong(2));
    startActivity(intent)
}

现在分为两个班。

Intent intent = getActivity.getIntent();
if(intent != null){
    mString = intent.getDataString();
}

if(null != mString){
    mTextView.setText(mString);
}

我只是想知道为什么在这段代码中我们需要这么多if个。第一段代码中的if很好。

从第一个活动调用第二个活动时。为什么我们需要检查intent是否为null?因为它是第二个活动的唯一入口点 为什么我们再次需要检查字符串是否为空,然后再将其分配给Text View

2 个答案:

答案 0 :(得分:1)

仅仅因为你在某些代码中看到它,并不意味着它是必需的。

在第一个条件下检查null是不必要的。这里的代码看起来像是非常偏执,getIntent()可能会返回null。

在第二种情况下,没有什么能告诉编译器确保返回字符串肯定不为空。实际上,文档声明它可能返回null,因此始终检查是安全的。您可以将空字符串放入TextView中,但这不一定是所期望的。没有背景就很难分辨。

答案 1 :(得分:0)

因为如果您不检查某些内容是否为空并尝试在其上调用方法,则会导致NullPointerException。这就是为什么只有在您确认Intent不为空之后,才能调用方法

intent.getDataString();