如果对象是使用 Dagger2 初始化的,是否仍然需要检查对象的无效性?

Is it still necessary to check an object for nullity if it is initialized using Dagger2?

我有一个 AppModule class ,其中我有以下方法 return 一个 FirebaseUser 我希望在我的整个生命周期中可用的对象我的应用程序。在使用依赖注入之前,我使用了这段代码:

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

是否还需要像这样检查无效性:

@Inject FirebaseUser firebaseUser;

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

除非您在 @Provides 注释方法上明确添加 @Nullable,否则 Dagger 将 never inject null values。如果你想注入一个可为空的对象,那么你还需要 @Nullable 注释。

Is it still necessary to check an object for nullity if it is initialized using Dagger2?

,如果您的注入设置正确,您将永远不必处理 null 值,除非您明确想要这样做。如果您仍然收到 NullPointerException,则说明您的 Dagger 设置有问题,需要修复。