Dagger 2 - 两个提供相同接口的方法
2022-09-01 00:26:44
假设我有:
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;
}
}
和应用程序组件:
@Component(modules = ApplicationModule.class)
public interface ApplicationComponent {
Shape provideRectangle();
}
使用代码的方式 - 它不会编译。错误说
错误:(33, 20) 错误:形状被绑定多次。
对我来说,这是不可能的,因为组件正在尝试查找一个实例,并且它找到了其中两个实例,因此它不知道要返回哪一个实例。Shape
我的问题是 - 我该如何处理这个问题?