我正在接收MainActiviy中的parcelable对象。我尝试过使用
if((Task)getIntent().getExtras().getParcelable(Create.TASK_KEY) != null)
在尝试获取Parcelable之前进行检查。不幸的是,这会使应用程序与空指针异常崩溃。在尝试检索parcelable之前,如何检查以确保parcelable可用?
答案 0 :(得分:4)
你可以使用
if (getIntent().hasExtra(Create.TASK_KEY)) {
}
仅当内部包不为空并且您有一个带有作为参数
提供的键的对象时,它才返回true 正如从@kcoppock中正确指出的那样,你也可以在包中放置一个空对象。 Task task = null;
if ((task = getIntent().getParcelableExtra(Create.TASK_KEY)) != null) {
// do something with task
}
答案 1 :(得分:2)
我认为getExtras返回null值,因此您的代码会导致NullPointerException。尝试检查额外值是否为空值:
Bundle extras = getIntent().getExtras();
if(extras != null && extras.getParcelable(Create.TASK_KEY) != null) {
...
}