我不确定Dagger2的@Bind注解的作用。
根据我在网上阅读的内容,我仍然不清楚,但是这里有一个示例:
@Module
public abstract class HomeModule {
@Binds
public abstract HomePresenter bindHomePresenter(HomePresenterImp
homePresenterImp);
}
类定义如下:
public interface HomePresenter {
Observable<List<User>> loadUsers();
}
public class HomePresenterImp implements HomePresenter {
public HomePresenterImp(){
}
@Override
public Observable<List<User>> loadUsers(){
//Return user list observable
}
}
如果我可以像以下提供注释那样使用,那么为什么我需要使用@Binds呢:
@Provides
public HomePresenter provideHomePresenter() {
return new HomePresenterImp();
}
@Binds与@Provides相比,其用途是什么?如果我使用@Binds,是否仍然需要在我的appcomponent中声明它(当我使用@Binds时,它是一个抽象类)?
CustomActivity
)绑定到AppCompatActivity
,例如,只能使用Binds
注释来实现。 - Samuel Eminet