Кинжал: вставлять строки @Named?

РЕДАКТИРОВАТЬ 2018-02-08: пример проекта, демонстрирующего, как это сделать наhttps://github.com/ravn/dagger2-named-string-inject-example - Запись:весь источник в одном файле!

Я смотрю, может ли кинжал заменить нам хитрость (так как наша платформа развертывания Java медленная).

Я строю карту конфигурационных строк во время выполнения, и я хотел бы, чтобы кинжал вводил по мере необходимости.

Например. Если бы у меня был

java.util.Map<String, String> map = new java.util.TreeMap<String, String>();
map.put("key", "value");

а также

@Inject
Thermosiphon(Heater heater, @Named("key") String value) {
    this.heater = heater;
    System.out.println("value =" + value);
}

Я хотел бы, чтобы «ценность» вводилась в стоимость.

Примеры в исходном коде не имеют использования @Named. Просто попытка дает следующее исключение:

Exception in thread "main" java.lang.IllegalStateException: Errors creating object graph:
  No binding for @javax.inject.Named(value=key)/java.lang.String required by class bar.Thermosiphon
    at dagger.internal.ThrowingErrorHandler.handleErrors(ThrowingErrorHandler.java:34)
    at dagger.internal.Linker.linkRequested(Linker.java:146)
    at dagger.ObjectGraph$DaggerObjectGraph.getInjectableTypeBinding(ObjectGraph.java:288)
    at dagger.ObjectGraph$DaggerObjectGraph.get(ObjectGraph.java:249)
    at app.CoffeeApp.main(CoffeeApp.java:20)

Как мне подойти к этому?

Ответы на вопрос(2)

Ваш ответ на вопрос