Hmm, I think that Key should always be cast - of course.
So binder.bind( ( ( Key<Collection<? extends Integer>> ) Key.get( Types.newParameterizedType( Collection.class, Types.subtypeOf( Integer.class ) ) ) ) ).to( ( Key<? extends Collection<? extends Integer>> ) Key.get( Types.setOf( Integer.class ) ) ); compiles... Thanks Johannes Schneider wrote: > Thanks for pointing at that class. Have missed it completely. > > But now I have a generics related problem with the compiler. I can fix > it using casts but I'd like to understand my error: Could anyone give me > a hint why this code does not compile? > > binder.bind( Key.get( Types.newParameterizedType( Collection.class, > Types.subtypeOf( Integer.class ) ) ) ).to( Key.get( Types.setOf( > Integer.class ) ) ); > > > Sincerly, > > Johannes > > [email protected] wrote: >> >> On Oct 15, 6:42 am, Johannes Schneider <[email protected]> wrote: >>> This is necessary because I inject the strategies using a parameter of >>> type "Collection<? extends ImageSelectionStrategy>". >>> Could that not-so-readable part with the type literals be skipped >>> somehow? I think that is quite a common use case and maybe should be >>> added to the multibinder? >> I think a your one-statement is the right fix here. If you write this >> too often, you can encapsulate it by using the Types utility class to >> compose the appropriate type objects: >> bindWildcardCollectionForSet(binder(), >> ImageSelectionStrategy.class); >> >> http://google-guice.googlecode.com/svn/tags/2.0/javadoc/com/google/inject/util/Types.html > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
