Hi,
Is there any other method instead of using constructor injecting? I
have some objects need to be injected which I don't want to put them
in constructor.

On Aug 19, 7:18 am, Stuart McCulloch <[email protected]> wrote:
> 2009/8/19 zhaoyi <[email protected]>
>
>
>
>
>
> > Sorry, the code is:
>
> > import javax.swing.JPanel;
>
> > import com.google.inject.AbstractModule;
> > import com.google.inject.Guice;
> > import com.google.inject.Inject;
> > import com.google.inject.Injector;
> > import com.google.inject.name.Named;
> > import com.google.inject.name.Names;
>
> > public class AnnotationDemo3 {
> >       �...@inject
> >       �...@named("panel")
> >        public JPanel panel=null;
>
> >        public AnnotationDemo3(){
> >                System.out.println(panel);
> >        }
>
> >        public JPanel getPanel() {
> >                return panel;
> >        }
>
> >        public void setPanel(JPanel panel) {
> >                this.panel = panel;
> >        }
>
> >        public static void main(String[] args) {
> >                Injector injector = Guice.createInjector(new
> > AbstractModule() {
> >                       �...@override
> >                        protected void configure() {
>
> >  bind(JPanel.class).annotatedWith(Names.named("panel")).to(
> >                                                MyPanel.class);
> >                        }
> >                });
> >                AnnotationDemo3 demo3 =
> > injector.getInstance(AnnotationDemo3.class);
> >                System.out.println(demo3.panel);
> >        }
> > }
>
> > class MyPanel extends JPanel {
>
> > }
>
> FYI, constructor injection goes something like this...
>
> public class AnnotationDemo3 {
>
>        private JPanel panel;
>
>       �...@inject
>        public AnnotationDemo3(@Named("panel") JPanel panel) {
>                this.panel = panel;
>                System.out.println(panel);
>        }
>
>        // etc...
>
>
>
> > On Aug 19, 7:00 am, Stuart McCulloch <[email protected]> wrote:
> > > 2009/8/19 zhaoyi <[email protected]>
>
> > > > Below is my code. The class AnnotationDemo3 has a panel field which
> > > > will be injected by annotation. The output of this program is:
>
> > > > null
> > > > demo.bindinganontation.MyPanel[,
>
> > 0,0,0x0,invalid,layout=java.awt.FlowLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]
>
> > > > In the constructor, the printf will print a null value which means the
> > > > panel field doesn't have been created at this time. How can I let it
> > > > creates the field at the very beginning time of the create created.
>
> > > I don't see any code here, but it sounds like you need to use constructor
> > > injection:
>
> > >    http://code.google.com/p/google-guice/wiki/Injections
>
> > > thanks.
>
> --
> 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