我有一个AppModule
类,其中有以下方法返回一个FirebaseUser
对象,该对象希望在我的应用程序的整个生命周期中都可用。在使用依赖注入之前,我已经使用了以下代码:
FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
//Do stuff
}
是否仍然需要像这样检查无效性?
@Inject FirebaseUser firebaseUser;
//In onCreate()
if (firebaseUser != null) {
//Do stuff
}
答案 0 :(得分:1)
除非您在@Nullable
带注释的方法上显式添加@Provides
,否则Dagger将never inject null
values添加。如果要注入可为空的对象,则也需要在其中插入@Nullable
注释。
如果使用Dagger2初始化了对象,是否仍然需要检查对象是否为空?
否,如果注射设置正确,则除非您明确希望这样做,否则您将永远不必处理null
值。如果仍然收到NullPointerException,则说明您的Dagger设置有问题,需要解决。