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