我有一个AppModule类,我有以下方法返回一个FirebaseUser对象,我希望在我的应用程序的整个life-cycle中可用。在使用依赖注入之前,我使用了以下代码:

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

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

@Inject FirebaseUser firebaseUser;

//In onCreate()
if (firebaseUser != null) {
    //Do stuff
}
分析解答

除非您在@Provides注释方法上明确添加@Nullable,否则Dagger将为永远不要注入null。如果要注入可以为空的对象,那么您也需要@Nullable注释。

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

不,如果您的注射设置正确,您将永远不必处理null值,除非您明确要这样做。如果仍然出现NullPointerException,那么您需要解决Dagger设置问题。