我有一个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设置问题。