скажет, что у меня есть:
public interface Shape {}
public class Rectangle implements Shape {
}
public class Circle implements Shape {
}
и у меня есть ApplicationModule, который должен предоставлять экземпляры как для Rec, так и Circle:
@Module
public class ApplicationModule {
private Shape rec;
private Shape circle;
public ApplicationModule() {
rec = new Rectangle();
circle= new Circle ();
}
@Provides
public Shape provideRectangle() {
return rec ;
}
@Provides
public Shape provideCircle() {
return circle;
}
}
и ApplicationComponent:
@Component(modules = ApplicationModule.class)
public interface ApplicationComponent {
Shape provideRectangle();
}
с кодом так, как он есть - он не будет компилироваться. ошибка, говоря
Ошибка: (33, 20): Форма привязана несколько раз.
Мне кажется, что этого не может быть сделано, потому что компонент пытается найти экземпляр Shape
, и он находит два из них, поэтому он не знает, какой из них нужно вернуть.
Мой вопрос: как я могу справиться с этой проблемой?