dagger2로 플레이 어라운드를 시도했지만 필드 주입에 문제가 있습니다. 여기에 제 코드가 있습니다.Dagger2는 주입 된 클래스 안에 필드를 주입 할 수 없습니다.
POJO 클래스 :
// User.java
public class User {
private String firstName, lastName;
public User(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
}
클래스 I는 user
필드를 삽입 할 수 없습니다.
//BackendService.java
public class BackendService {
@Inject
public User user; // Not injected -> Null
@Inject
public BackendService() {
}
}
사용자 공급자 클래스
// UserModule.java
@Module
public class UserModule {
@Provides
@Singleton
User providesUser() {
return new User("AA","BB");
}
}
백엔드 바이더 클래스
// BackendServiceModule.java
@Module
public class BackendServiceModule {
@Provides
BackendService provideBackendService() {
return new BackendService();
}
}
그리고 마지막으로, 문제가있는 구성 요소
// ApplicationComponent.java
@Component(modules = {UserModule.class, BackendServiceModule.class})
public interface ApplicationComponent {
BackendService provideBackendService();
void inject(ConsumerMain consumerMain);
}
그 BackendService.java
분야에서user
이 주입되지 않습니다.
주입은 @Provides BackendService
방법을 삭제 BackendService
내 문제를 해결했습니다. 문제를 설명해 주셔서 감사합니다 .-) –