Java 匕首2罐';t注入类内的注入字段
我试着玩弄dagger2,但我遇到了场注入的问题,这是我的代码 POJO课程:Java 匕首2罐';t注入类内的注入字段,java,android,dependency-injection,dagger-2,inject,Java,Android,Dependency Injection,Dagger 2,Inject,我试着玩弄dagger2,但我遇到了场注入的问题,这是我的代码 POJO课程: //User.java 公共类用户{ 私有字符串firstName,lastName; 公共用户(字符串名、字符串名){ this.firstName=firstName; this.lastName=lastName; } } 我无法在user字段中插入的类 //BackendService.java 公共类后端服务{ @注入 公共用户用户;//未注入->空 @注入 公共后端服务(){ } } 用户提供程序类
//User.java
公共类用户{
私有字符串firstName,lastName;
公共用户(字符串名、字符串名){
this.firstName=firstName;
this.lastName=lastName;
}
}
我无法在user
字段中插入的类
//BackendService.java
公共类后端服务{
@注入
公共用户用户;//未注入->空
@注入
公共后端服务(){
}
}
用户提供程序类
//UserModule.java
@模块
公共类用户模块{
@提供
@独生子女
用户providesUser(){
返回新用户(“AA”、“BB”);
}
}
后端提供程序类
//BackendServiceModule.java
@模块
公共类后端服务模块{
@提供
后端服务provideBackendService(){
返回新的后端服务();
}
}
最后但并非最不重要的是,组件
//ApplicationComponent.java
@组件(模块={UserModule.class,BackendServiceModule.class})
公共接口应用程序组件{
后端服务provideBackendService();
无效注入(ConsumerMain ConsumerMain);
}
问题在于BackendService.java
中的user
字段没有被注入
注入在
后端服务上正常工作
删除您的@提供后端服务
方法
当您调用newbackendservice()
时,您告诉Dagger“不要担心如何创建后端服务,我可以为您做”。这也防止Dagger调用带注释的构造函数和方法,或填充带注释的字段
当您删除该方法时,Dagger将检查BackendService以了解如何实例化它本身,此时它将看到您的
@Inject
构造函数和字段,并在需要时使用它们来构造BackendService。删除您的@提供BackendService
方法
当您调用newbackendservice()
时,您告诉Dagger“不要担心如何创建后端服务,我可以为您做”。这也防止Dagger调用带注释的构造函数和方法,或填充带注释的字段
当您删除该方法时,Dagger将检查BackendService以了解如何实例化它本身,此时它将看到您的
@Inject
构造函数和字段,并在需要时使用它们来构造后端服务。解决了我的问题,感谢您说明问题:-)解决了我的问题,感谢您对问题进行说明:-)