Gents,

Thanks all -- it works. Not sure I entirely grasp the full potential
of this capability from TypeLiteral<T>, per the documentation:

"Java doesn't yet provide a way to represent generic types, so this
class does."

But, in the meanwhile, having a means to generate generic Java
containers is great.

Thanks,

Grar

On Dec 12, 10:00 pm, Stuart McCulloch <[email protected]> wrote:
> 2009/12/13 dg <[email protected]>
>
>
>
> > bind( new TypeLiteral<Set<String>>(){} ).to( MyCustomStringSet.class )
>
> also from the Guice wiki:
>
>   "Guice has complete type information for everything it injects. If you're
> injecting parameterized types, you can inject a TypeLiteral<T> to
> reflectively tell you the element type."
>
> so you could even do this:
>
>   bind( new TypeLiteral<Set<String>>(){} ).toProvider(
> MyCustomSetProvider.class );
>
> and have TypeLiteral injected in the provider constructor, which would tell
> you what sort of set to provide...
>
> Then you can
>
>
>
>
>
> > @Inject SomeClass( Set<String> strings ) { ..... }
> > @Inject SomeClass( Provider<Set<String>> stringProvider ) { ..... }
>
> > of course, toInstance, toProvider, work too, it's the TypeLiteral
> > that's the magic.
>
> > -d
>
> > On Dec 12, 3:50 pm, Grary <[email protected]> wrote:
> > > Folks,
>
> > > I want to provide multiple instances of
> > > java.util.Set<java.lang.String> in my class, but I just can't seem to
> > > get it to work with Guice's Provider<T>.
>
> > > There seems to be a hole in the documentation as far the following key
> > > steps are concerned:
>
> > > 1) Can Provider<T> be implemented where T is a generic class?
> > > 2) If so, how does the binding look?
>
> > > Any thoughts?
>
> > > Thanks,
>
> > > Grar
>
> --
> Cheers, Stuart

--

You received this message because you are subscribed to the Google Groups 
"google-guice" group.
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