J'essaye de lier une instance de List lorsqu'une liste est annotée avec une annotation spécifique.Guice - Aucune implémentation liée (pour la liste <String>)
J'ai essayé d'utiliser les méthodes Instance Binding et Provider, mais l'erreur persiste.
Voici ma méthode @Provides et configure()
@Provides @Named("Regions")
public List<String> getRegions() {
return AppConfig.findVector("Regions"); //this would return a Vector<String>
}
@Override
protected void configure() {
bind(List.class).annotatedWith(Names.named("Regions")).to(Vector.class);
}
Voici comment j'essaie de récupérer l'instance -
List<String> regions = injector.getInstance(Key.get(List.class, Names.named("Regions")));
C'est l'erreur que je reçois
com.google.inject.ConfigurationException: Guice configuration errors:
1) No implementation for java.util.List annotated with @com.google.inject.name.Named(value=Regions) was bound.
while locating java.util.List annotated with @com.google.inject.name.Named(value=Regions)
pouvez-vous partager le code de votre ServiceModule où vous pourriez avoir 'bind 'le champ? – nullpointer
@nullpointer J'ai ajouté la méthode 'configure()'. C'est tout ce que j'ai dans mon ServiceModule – AgentX