2
생성자를 통해 제네릭 인터페이스의 구현을 삽입하고 싶습니다. 단검 2 일반 인터페이스 구현을 삽입하십시오.
이
내 인터페이스public interface BaseValidator<T> { boolean isValid(T t); }
첫 번째 구현
public class FirstValidator implements BaseValidator<String> {
@Override
public boolean isValid(String string) {
// code here
}
두 번째 구현입니다
내이 검증 모듈에 제공public class SecondValidator implements BaseValidator<Int> {
@Override
public boolean isValid(Int int) {
// code here
}
@Provides
@Singleton
@Named("FirstValidator")
public BaseValidator<String> provideFirstValidator(){
return new FirstValidator();
}
@Provides
@Singleton
@Named("SecondValidator")
public BaseValidator<Int> provideSecondValidator(){
return new SecondValidator();
}
그리고이
private BaseValidator<String> mFirstValidator;
@Inject
public MainPresenter(@Named("FirstValidator") BaseValidator<String> firstValidator) {
this.mFirstValidator = firstValidator;
}
처럼 삽입하려고 할 때 다음 오류
error: [dagger.android.AndroidInjector.inject(T)] BaseValidator<java.lang.String> cannot be provided without an @Provides-annotated method.
가 어떻게 모든 클래스에 제네릭 인터페이스의 내 구현을 삽입 할 수 던져?
내 코드에서 어떻게 달성 할 수 있는지 설명해 주시겠습니까? – DigitalGrape