I am not certain on the purpose for Dagger2's @Bind annotation.
From what i have read online im still not clear but here is an example:
@Module
public abstract class HomeModule {
@Binds
public abstract HomePresenter bindHomePresenter(HomePresenterImp
homePresenterImp);
}
and the class definitions look like this:
public interface HomePresenter {
Observable<List<User>> loadUsers();
}
public class HomePresenterImp implements HomePresenter {
public HomePresenterImp(){
}
@Override
public Observable<List<User>> loadUsers(){
//Return user list observable
}
}
why would i need to use @Binds if i can just use provides annotation as follows:
@Provides
public HomePresenter provideHomePresenter() {
return new HomePresenterImp();
}
what is the usecase for @Binds instead of @Provides ? if i use @Binds do i still need to declare it in my appcomponent (its an abstract class when i use @Binds)?
CustomActivity
to anAppCompatActivity
for example this can only be achievied usingBinds
annotation – Cocytus