Thanks for the suggestion, but I am trying to minimize java code. But interesting way of doing it.
On Jul 2, 10:58 am, Chris Tucker <[email protected]> wrote: > You can achieve what you want using a technique described on the FAQ > page:http://code.google.com/p/google-guice/wiki/FrequentlyAskedQuestions#H... > ? > > It's not the most elegant thing in the world (you'll need a *Holder class > for each optional parameter, and you'll have to change the type of your ctor > args), but it gets the job done and does so without requiring any nasty > setter/field injection. > > Chris > > > > On Fri, Jul 2, 2010 at 2:37 AM, Maaartin-1 <[email protected]> wrote: > > IMHO, it's a sort-of bug or a missing feature. There's no nice solution > > for the problem described. Quite often, a class knows suitable defaults > > for missing ctor parameters and something like this should be supported. > > Probably @Nullable is fine the way it works, but then there should be an > > @Optional annotation on arguments allowing both a binding to null and a > > missing binding. > > > You can achieve something like > > > @Inject > > public void injectWebServiceProperties( > > @Optional @Named("akui.webServiceURL") String webServiceUrl, > > @Optional @Named("akui.webServiceUsername") String webServiceUsername, > > @Optional @Named("akui.webServicePassword") String webServicePassword) { > > ... > > } > > > only using field injection, which is obviously a bad thing. I've already > > ran into this several times and I don't think it's so rare it should be > > ignored. > > > On 10-07-02 10:31, [email protected] wrote: > > > On Jul 1, 3:30 pm, Jeremy Chone <[email protected]> wrote: > > >> Is this a wanted feature or a bug? Is there any way to avoid to have > > >> one setter per property while keeping any of them optional? > > > > It's a feature. Although they're frequently confused, 'optional=true' > > > and @Nullable mean quite different things. > > > > '@Inject(optional=true)' means that the injector should suppress any > > > error from not being able to fulfill the dependencies of an injection. > > > The injector will try its best to find bindings, even if that involves > > > creating just-in-time bindings. But if any of the parameters to a > > > method cannot be satisfied, the entire call is skipped. > > > > '@Nullable' means that the injector will not report an error if a null > > > value is returned by the binding for an injection. The binding must > > > still exist. The only time @Nullable is useful is when you implement a > > > provider method (@Provides) or a provider class that may return null. > > > -- > > 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%2bunsubscr...@google > > groups.com> > > . > > 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.
