Как внедрить универсальный тип в неуниверсальный тип интерфейса, используя Guice - PullRequest
1 голос
/ 07 мая 2019

Как ввести универсальный тип в экземпляр не универсального типа интерфейса? например:

У меня есть интерфейс класса MessageHandler

public interface MessageHandler {
    public IMessage HandleMessage(String messagePath, String jobId);
}

У меня есть универсальный класс, который реализует этот интерфейс ProtobufMessageHandler

public class ProtobufMessageHandler<T> implements MessageHandler
{
private T message
}

У меня есть объект, который содержит экземпляр MessageHandler, который должен быть заполнен одной из реализаций интерфейса MessageHandler

public class Publisher {

private MessageHandler messageHandler;
}

В некоторых случаях я хочу внедрить ProtobufMessageHandler в Publisher.messageHandler, а в других случаях внедрить ProtobufMessageHandler в Publisher.messageHandler

Есть ли способ сделать это?

...