Когда вы используете
bind(ServiceImpl.class).to(IService.class)
ServiceImpl
- это класс реализации, а IService
- это контракт , который вы объявляете как тип впрыска. Таким образом, вы будете использовать
@Inject
private IService service;
С
bindAsContract(ServiceImpl.class)
вы говорите, что ServiceImpl
является одновременно и классом реализации , и контрактом для рекламы в качестве. Так что вам нужно будет ввести его как таковой.
@Inject
private ServiceImpl service;