Hi all,
 
the Guice documentation for the Binder class states that "*Guice cannot 
currently bind or inject a generic type, such as Set<E>; all type 
parameters must be fully specified.*"
Is there any remedy for this limitation in sight?
 
What I'm trying to do is the following:
A common source of unwanted coupling is introduced by using specific 
implementations of collection types or other generic types, for example
 
    Map<String, Integer> elements = new HashMap<String, Integer>();
 
which ties the code to a specific implementation (HashMap, in this case). 
Let's say that depending on my deployment scenario I might want to use GNU 
Trove classes like THashMap instead.
However, rather than hard-coding the implementing class in my code, I would 
like to write
 
    @Inject Map<String, Integer> elements;
 
and have Guice take care of the rest. I obviously don't want to create 
bindings specifically for maps from String to Integer, but for maps in 
general.
There might also be additional annotations to specify implementation 
preferences, for example
 
    @Inject @Identity Map<String, Integer> elements; // requires 
IdentityHashMap or similar
    @Inject @Synchronized @Linked Map<String, Integer> elements; // 
requires a synchronized LinkedHashMap or similar
 
Is support for features like this planned for a future release of Guice? Or 
is there a way to do this already?
 
Thanks,
 
Mirko
 

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-guice/-/J3pk9HhjpCYJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en.

Reply via email to