bind(new TypeLiteral<UiHandlersStrategy<MyUiHandlers>>() {
}).to(ProviderUiHandlersStrategyImpl.class);

ProviderUiHandlersStrategyImpl here is a raw type... is this problematic ?
Unfortunatly, to instance isn't available in Gin :(

What I do now and that does work is that instead of binding
UiHandlerStrategy I use ProviderUiHandlerStrategyImpl<MyUiHanlders> in my
class that needs it. But I kinda wanted to get rid of my implementation and
use the interface instead.

On Thu, Sep 23, 2010 at 4:34 PM, Lucas Cavalcanti <[email protected]>wrote:

> I tried to reproduce your error, but i couldn't.
>
> The problem is:
>
> You have a generic interface, but you are binding only its raw type...
>
> Suppose you want to receive a List<Something> as dependency...
> this way you must do something like:
>
>  bind(new TypeLiteral<List<Something>>() {}).toInstance(new 
> ArrayList<Something>());
>
>
> http://code.google.com/p/google-guice/wiki/FrequentlyAskedQuestions#How_to_inject_class_with_generic_type?<http://code.google.com/p/google-guice/wiki/FrequentlyAskedQuestions>
>
> On Thu, Sep 23, 2010 at 5:09 PM, Christian Goudreau <
> [email protected]> wrote:
>
>> This one:
>> bind(MemberView.MyUiHandlers.class).to(MemberPresenter.class);
>>
>> How can I bind H ? And I will have to remove the upper one if I don't want
>> to get and error from Guive.
>>
>> Thanks btw for every input I had
>>
>> 2010/9/23 Yaxin Liu 刘亚新 <[email protected]>
>>
>>> TypeLiteral?
>>>
>>>
>>> On Thu, Sep 23, 2010 at 7:50 AM, Christian Goudreau <
>>> [email protected]> wrote:
>>>
>>>> Yeah, well, that doesn't work :D It's still complaining about H extends
>>>> UiHandlers that isn't bind :D (H = MyUiHandlers and is bound)
>>>>
>>>> Cheers,
>>>>
>>>>
>>>> On Thu, Sep 23, 2010 at 10:47 AM, Lucas Cavalcanti <
>>>> [email protected]> wrote:
>>>>
>>>>> When your class has a generic type, I think you have to do the generic
>>>>> binding explicity:
>>>>>
>>>>> bind(new
>>>>> TypeLiteral<UiHandlersStrategy<MyUiHandlers>>(){}).annotatedWith(...).to(...);
>>>>>
>>>>> You could try to use wildcards, but I'm not sure if it works
>>>>>
>>>>> []'s
>>>>> Lucas
>>>>>
>>>>>
>>>>> On Thu, Sep 23, 2010 at 11:35 AM, Christian Goudreau <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Anyone else ?
>>>>>>
>>>>>>
>>>>>> On Wed, Sep 22, 2010 at 11:34 AM, Christian Goudreau <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> bind(MemberView.MyUiHandlers.class).to(MemberPresenter.class);
>>>>>>>
>>>>>>>     bind(UiHandlersStrategy.class).annotatedWith(ProviderUiHandler.
>>>>>>> class).to(ProviderUiHandlersStrategyImpl.class);
>>>>>>>
>>>>>>>     bind(UiHandlersStrategy.class).annotatedWith(SetterUiHandler.
>>>>>>> class).to(SetterUiHandlersStrategyImpl.class);
>>>>>>>
>>>>>>> public interface UiHandlersStrategy<H extends UiHandlers> {
>>>>>>>
>>>>>>>   void setUiHandlers(H uiHandlers);
>>>>>>>
>>>>>>>   H getUiHandlers();
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> public class ProviderUiHandlersStrategyImpl<H extends UiHandlers>
>>>>>>> implements
>>>>>>>
>>>>>>>     UiHandlersStrategy<H> {
>>>>>>>
>>>>>>>   private final Provider<H> uiHandlersProvider;
>>>>>>>
>>>>>>>
>>>>>>> Here's more informations. What I don't get is that MyUiHandlers is
>>>>>>> declared... but my guest is that it is AFTER the other one...
>>>>>>>
>>>>>>> Cheers,
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Sep 22, 2010 at 11:16 AM, Fred Faber <[email protected]>wrote:
>>>>>>>
>>>>>>>> Can you post your binding?
>>>>>>>>
>>>>>>>> You should be able to do this with something to the effect of:
>>>>>>>>
>>>>>>>> bind(new TypeLiteral<UiHandlersStrategy<MyUiHandlers>(){})
>>>>>>>>   .to(...your impl);
>>>>>>>>
>>>>>>>> -Fred
>>>>>>>>
>>>>>>>> On Mon, Sep 20, 2010 at 5:10 PM, Christian Goudreau <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Humm I think my subject is weird... anyway :D
>>>>>>>>>
>>>>>>>>> Here's what I want to do:
>>>>>>>>>
>>>>>>>>>   @Inject
>>>>>>>>>
>>>>>>>>>   public MemberView(@ProviderUiHandler 
>>>>>>>>> finalUiHandlersStrategy<MyUiHandlers> providerUiHandlersStrategyImpl) 
>>>>>>>>> {
>>>>>>>>> My error:
>>>>>>>>> 17:02:42.928 [ERROR] [apapul] No implementation bound for key
>>>>>>>>> Key[type=ca.ulaval.apapul.client.mvp.strategies.uihandlers.UiHandlersStrategy<ca.ulaval.apapul.client.core.member.MemberView$MyUiHandlers>,
>>>>>>>>> [email protected]]
>>>>>>>>>
>>>>>>>>> MyUiHandlers is also an interface binded by Gin/Guice. Using the
>>>>>>>>> implementation class instead the interface work, but I wanted to use 
>>>>>>>>> the
>>>>>>>>> interface with an annotation.
>>>>>>>>>
>>>>>>>>> Btw, is this worth the pain ? That seem to be almost as if I was
>>>>>>>>> using the implementation class anyway...
>>>>>>>>>
>>>>>>>>> Thanks and cheers,
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Christian Goudreau
>>>>>>>>> www.arcbees.com
>>>>>>>>>
>>>>>>>>>  --
>>>>>>>>> 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]<google-guice%[email protected]>
>>>>>>>>> .
>>>>>>>>> For more options, visit this group at
>>>>>>>>> http://groups.google.com/group/google-guice?hl=en.
>>>>>>>>>
>>>>>>>>
>>>>>>>>  --
>>>>>>>> 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]<google-guice%[email protected]>
>>>>>>>> .
>>>>>>>> For more options, visit this group at
>>>>>>>> http://groups.google.com/group/google-guice?hl=en.
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Christian Goudreau
>>>>>>> www.arcbees.com
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Christian Goudreau
>>>>>> www.arcbees.com
>>>>>>
>>>>>>  --
>>>>>> 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]<google-guice%[email protected]>
>>>>>> .
>>>>>> For more options, visit this group at
>>>>>> http://groups.google.com/group/google-guice?hl=en.
>>>>>>
>>>>>
>>>>>  --
>>>>> 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]<google-guice%[email protected]>
>>>>> .
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/google-guice?hl=en.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Christian Goudreau
>>>> www.arcbees.com
>>>>
>>>>  --
>>>> 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]<google-guice%[email protected]>
>>>> .
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/google-guice?hl=en.
>>>>
>>>
>>>
>>>
>>> --
>>> Yaxin
>>>
>>>  --
>>> 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]<google-guice%[email protected]>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/google-guice?hl=en.
>>>
>>
>>
>>
>> --
>> Christian Goudreau
>> www.arcbees.com
>>
>>  --
>> 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]<google-guice%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/google-guice?hl=en.
>>
>
>  --
> 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]<google-guice%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-guice?hl=en.
>



-- 
Christian Goudreau
www.arcbees.com

-- 
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