嗨,我是编程的初学者。我正试图从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
?
答案 0 :(得分:1)
仅仅因为你在某些代码中看到它,并不意味着它是必需的。
在第一个条件下检查null是不必要的。这里的代码看起来像是非常偏执,getIntent()可能会返回null。
在第二种情况下,没有什么能告诉编译器确保返回字符串肯定不为空。实际上,文档声明它可能返回null,因此始终检查是安全的。您可以将空字符串放入TextView中,但这不一定是所期望的。没有背景就很难分辨。
答案 1 :(得分:0)
因为如果您不检查某些内容是否为空并尝试在其上调用方法,则会导致NullPointerException
。这就是为什么只有在您确认Intent
不为空之后,才能调用方法
intent.getDataString();