Как я могу ввести общий параметр, используя Guice? - PullRequest
2 голосов
/ 22 января 2012

Я нашел другие связанные вопросы, но ни один из них не был так прост:

Как я могу связать следующий универсальный параметр, используя Guice?

1 Ответ

3 голосов
/ 22 января 2012
public class TestGenericBinding {
   static class A<T> {
      T a;
      @Inject A(T a) {
         this.a=a;
      }
   }

    @Test public void bindingWorked() {
       Injector injector = Guice.createInjector(new AbstractModule() {

         @Override
         protected void configure() {
            bind(Integer.class).toInstance(123);
            bind(new TypeLiteral<A<Integer>>() {});
         }
      });
       A<Integer> a = injector.getInstance(
          Key.get(new TypeLiteral<A<Integer>>(){}));
       assertEquals(new Integer(123),a.a);
    }
}
...