#java #generics #guice #inject
#java #дженерики #guice #внедрить
Вопрос:
Я хотел бы иметь возможность получать объекты на основе универсального типа с помощью Guice.
Class Sample<T>{
private T value;
}
Class Type1 {
}
Class Type2 {
}
Simple<Type1> simpleValue1 = injector.getInstance(?);
Simple<Type2> simpleValue2 = injector.getInstance(?);
Не могли бы вы подсказать мне, что я должен передать в «getInstance»?
Примечание: класс Type1 и класс Type2 импортируются из других jar, поэтому невозможно написать общий интерфейс.
Комментарии:
1. Попробуйте
Key.get(new TypeLiteral<Sample<Type1>>() {})
.
Ответ №1:
As @Louis Wasserman mentioned Below code working for me.Thanks @Louis Wasserman.
Sample<Type1> repo1 = injector.getInstance(new Key<Sample<Type1>>() {});
Sample<Type2> repo2 = injector.getInstance(new Key<Sample<Type2>>() {});