我在Guice中找到了Guice重写绑定的答案,但不知道如何在GWT中为GIN做同样的事情。
提前感谢!
据我所知,它是不支持的。
回复你的评论:
如果你正在运行"纯"JUnit测试(不是gwttestcase),你不使用GIN,你使用Guice,在Guice中你可以覆盖模块。如果您想重用GIN模块,那么使用GinModuleAdapter
包装它们。所以你可以这样做:
static class MyGinModule extends GinModule {
...
}
static class MyGuiceModule extends AbstractModule {
...
}
// And somewhere in your code, here's how you could create the Injector
Module myWrappedGinModule = new GinModuleAdapter(new MyGinModule());
Module myModule = Modules.override(myWrappedGinModule).with(new MyGuiceModule());
Injector injector = Guice.createInjector(myModule);
在你的界面中使用@ImplementedBy
注释
在注释中指定的类将是默认实现。
您可以指定另一个实现,有效地覆盖默认值。
例如:@ImplementedBy(MyWidgetImpl.class)
public interface MyWidget {
//...
}
public class MyWidgetImpl implements MyWidget {
//...
}