Я хочу связать Set в Guice следующим образом:
public class TestModule extends AbstractModule {
@Override
protected void configure() {
Set<String> testSet = Sets.newHashSet("Hello", "World");
bind(Set.class).annotatedWith(Named.named("Test.Set")).toInstance(testSet);
}
}
Я обеспечил включение этого модуля при создании инжектора.Я пытаюсь использовать этот ограниченный набор позже:
public class TestClass {
@Inject
public NewReleaseRunner(@Named("Test.Set") Set<String> testSet) {
System.out.println(testSet.toString());
}
}
Однако это приводит к ошибке: No implementation for java.util.Set<java.lang.String> annotated with @com.google.inject.name.Named(value=Test.Set) was bound.
Меня беспокоит то, что Set<String>
является общим, но привязка кSet.class
.Что я могу сделать, чтобы решить эту проблему?