Guice: привязка уже настроена

#java #guice

#java #guice

Вопрос:

У меня есть фрагмент кода с несколькими модулями из разных библиотек:

 install(new AModule())
install(new BModule())
  

Я получаю сообщение об ошибке:-

Привязка к com.path.to.Class был уже настроен в com.Модуль.Предоставьте класс. в com.BModule…

Мне нужны оба модуля, но их нельзя использовать вместе, потому что оба имеют привязки к определенному классу. Я не владею 2 библиотеками, поэтому не могу вносить в них изменения. Как я могу решить эту проблему?

Ответ №1:

Используйте Modules.override

Если вам требуется наличие привязки AModule , используйте:

 install(Modules.override(new BModule()).with(new AModule()));
  

С другой стороны, если вам требуется наличие привязки BModule , используйте:

 install(Modules.override(new AModule()).with(new BModule()));