How to override binding in GIN

拟墨画扇 提交于 2019-12-07 03:11:37

问题


I find the answer for Guice Overriding Binding in Guice but don't know how to do the same for GIN in GWT.

Thanks in advance!


回答1:


As far as I know, it's not supported.

To answer your comment:

If you're running "pure" JUnit tests (not GWTTestcases) you don't use GIN, you use Guice, and in Guice you can override modules. If you want to reuse GIN modules, then wrap them using GinModuleAdapter. So you can do something like this:

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);



回答2:


Use the @ImplementedBy annotation in your interface.

The class specified in the annotation will be the default implementation.

You can specify another implementation, effectively overriding the default.

For example:

@ImplementedBy(MyWidgetImpl.class)
public interface MyWidget {
  //...
}

public class MyWidgetImpl implements MyWidget {
  //...
}


来源:https://stackoverflow.com/questions/7314323/how-to-override-binding-in-gin

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!