Так, по моему тестирования, если у вас есть что-то вроде:Как вычесть привязку с помощью переопределения модуля Guice?
Module modA = new AbstractModule() {
public void configure() {
bind(A.class).to(AImpl.class);
bind(C.class).to(ACImpl.class);
bind(E.class).to(EImpl.class);
}
}
Module modB = New AbstractModule() {
public void configure() {
bind(A.class).to(C.class);
bind(D.class).to(DImpl.class);
}
}
Guice.createInjector(Modules.overrides(modA, modB)); // gives me binding for A, C, E AND D with A overridden to A->C.
Но что, если вы хотите, чтобы удалить привязку для Е в MODB? Я не могу найти способ сделать это, не нарушая привязку для E в отдельный модуль. Есть ли способ?
Просто глупая идея, может быть, но вы пытаетесь связать (E.class) .то (E.class)? (Можно ли связать интерфейс с другим интерфейсом?) –
Да, вы можете привязать 1 привязку к другому связыванию неограниченно, если конечная точка привязки указывает на конкретный класс или поставщика. Что касается bind (E.class) .to (E.class), я подал ошибку об этом 3 года назад, и это выходит в 2.1. http://code.google.com/p/google-guice/issues/detail?id=171 –