如何检查 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) {
    ...
}