Java 匕首2罐';t注入类内的注入字段

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 公共类后端服务{ @注入 公共用户用户;//未注入->空 @注入 公共后端服务(){ } } 用户提供程序类

我试着玩弄dagger2,但我遇到了场注入的问题,这是我的代码

POJO课程:

//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
构造函数和字段,并在需要时使用它们来构造后端服务。

解决了我的问题,感谢您说明问题:-)解决了我的问题,感谢您对问题进行说明:-)