В одном пакете есть интерфейс IService, реализованный классом ServiceImpl:
public interface IService
{
void doSomething();
}
@Component
@Provides
@Instantiate
public class ServiceImpl implements IService
{
public void doSomething()
{
}
}
Во втором пакете у меня есть другой класс, ServiceConsumer (команда оболочки GoGo; специальные аннотации не включены), с использованием предоставляемого сервисав первом пакете:
@Component
@Provides
@Instantiate
public class ServiceConsumer
{
@Requires
private IService service;
public doIt()
{
service.doSomething();
}
}
Когда я импортирую и запускаю два пакета в Феликсе, я вижу, что все мои службы правильно создаются с использованием экземпляров ipojo: и что ServiceImpl предоставляет IService.Тем не менее, когда doIt () выполняется, service имеет значение null.
Поскольку IService, кажется, доступен, я ожидаю, что @Requires вставит хороший экземпляр, но, похоже, он этого не сделает.
У меня такое ощущение, что есть что-то очень очевидное, чего я не делаю, но я понятия не имею, что.