@Fred. Strange, for some reason I remember getting an error message
when trying to do that. I just tried again and it worked.

On Wed, Nov 3, 2010 at 10:13 PM, Fred Faber <[email protected]> wrote:
> Yes, though Injector::injectMembers will of course only work if you have a
> handle on the Injector.
>
> If you have an object whose creation is done completely outside of Guice,
> then you have limited options on how to give that object a handle to the
> injector.
> And if you have the machinery to give that object an Injector, then you can
> simply use that machinery to inject the members on it, as you point out.
> The simplest solution for these cases, for better or worse, is often to
> inject the Injector a static member of the class.  Then, in the callback
> method (which is 'bind()' in this case), you can use this handle to inject
> your own member:
> @Override public void bind() {
>    MyGuiScreenController.injector.injectMembers(this);
> }
> -Fred
> On Wed, Nov 3, 2010 at 11:58 PM, Kartik Kumar <[email protected]>
> wrote:
>>
>> If you have a reference to already instantiated object, can't you use
>> Injector#injectMembers(Object)
>>
>> On Wed, Nov 3, 2010 at 3:52 PM, David <[email protected]> wrote:
>>>
>>> UPDATE:
>>> In the few days of waiting for my post to pass moderation,  the
>>> developer of the 3rd party library contacted me.  Turns out there IS
>>> actually a way to pass an already instantiated object for the GUI to
>>> use and call. He updated his wiki to document how. This basically
>>> solves my problem though I am still curious about the question itself.
>>>
>>> Thanks,
>>> ~David
>>>
>>>
>>> On Oct 31, 7:33 pm, David <[email protected]> wrote:
>>> > Alright I have read through the Guice user-guides and I am using Guice
>>> > on several projects now.  I am still pretty new to Guice though.
>>> > Currently I have run into a bit of a snag and I wanted some advice on
>>> > how to proceed. I don't know how to solve the following issue except
>>> > by using static factories (which I know is frowned upon).
>>> >
>>> > Lets say I have a service, 'MyService', which is bound to
>>> > 'MyServiceImpl', is injected into multiple places in my project, and
>>> > is a Singleton (it has state that all parts of the program must be
>>> > aware of). So far so good.  This works as expected.
>>> >
>>> > Now one of the places I need access to this service is a class call
>>> > 'MyGuiScreenController' which implements a third party interface,
>>> > 'ScreenController'. Now here is where things get interesting.  The
>>> > rest of my code never touches MyGuiScreenController.  It is
>>> > instantiated (using a default, no argument constructor) by a third
>>> > party (GUI) library via reflection.  I have no control over this
>>> > process.  It has an inherited method 'bind' which is called when the
>>> > GUI is setup, and then any number of methods I define based on GUI
>>> > events.
>>> >
>>> > Now as I said, I could probably get away with a static factory and
>>> > call said factory inside the bind method to get access to 'MyService',
>>> > but is this the only way?  It might get especially ugly as I will
>>> > probably have many similar classes to  'MyGuiScreenController', all
>>> > needing certain other service classes.  Will I need to make a static
>>> > factory for each one of these?  That seems like a bad solution, but
>>> > the only one I can figure out at the moment.
>>> >
>>> > Thanks for any help and please ask any questions if I did not explain
>>> > myself fully.
>>> >
>>> > ~David
>>>
>>> --
>>> 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.
>>>
>>
>> --
>> 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.
>
> --
> 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.
>

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