如果使用Dagger2初始化了对象,是否仍然需要检查对象是否为空?

时间:2019-07-19 09:50:54

标签: android firebase dependency-injection dagger-2 dagger

我有一个AppModule类,其中有以下方法返回一个FirebaseUser对象,该对象希望在我的应用程序的整个生命周期中都可用。在使用依赖注入之前,我已经使用了以下代码:

FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
    //Do stuff
}

是否仍然需要像这样检查无效性?

@Inject FirebaseUser firebaseUser;

//In onCreate()
if (firebaseUser != null) {
    //Do stuff
}

1 个答案:

答案 0 :(得分:1)

除非您在@Nullable带注释的方法上显式添加@Provides,否则Dagger将never inject null values添加。如果要注入可为空的对象,则也需要在其中插入@Nullable注释。

  

如果使用Dagger2初始化了对象,是否仍然需要检查对象是否为空?

,如果注射设置正确,则除非您明确希望这样做,否则您将永远不必处理null值。如果仍然收到NullPointerException,则说明您的Dagger设置有问题,需要解决。