See issue 430 ( http://code.google.com/p/google-guice/issues/detail?id=430 ) and the patch attached to allow AssistedInject to work with multiple constructors.
Sam On Sat, Nov 14, 2009 at 4:10 AM, leszek <[email protected]> wrote: > Hi Leigh, > > Thanks for the link, I read it through. > > I used this link: http://pastie.org/453944.txt and it works for me. > > The only problem I found is that my "commands" can use different > numbers of argument e.g. > > @Inject > public ConcreteCommand1(SomeService service, @Assisted String > runtime1) { > > @Inject > public ConcreteCommand1(SomeService service, @Assisted String > runtime1, @Assisted String runtime2) { > > .. etc... > > But I resolved that issue by creating additional class > 'CommandParam' : something like command design pattern: > http://en.wikipedia.org/wiki/Command_pattern > > ------------------------------------- > public class CommandParam { > > private final String param1; > private final String param2; > > public CommandParam(String param1) { > this.param1 = param1; > this.param2 = null; > } > > public CommandParam(String param1, String param2) { > this.param1 = param1; > this.param2 = param2; > } > > public String getParam1() { > return param1; > } > > public String getParam2() { > return param2; > } > > } > > ------------------ > > and replace: > > @Inject > public ConcreteCommand1(SomeService service, @Assisted String > runtime1) { > > with > > @Inject > public ConcreteCommand1(SomeService service, @Assisted CommandParam > runtime1) { > > > and, of course, all the other stuff accordingly. > > > instance.process("command1",new CommandParam("This is runtime param > for command 1")); > instance.process("command2",new CommandParam("This is runtime param > for command 2","Second param")); > instance.process("command3",new CommandParam("This should fail")); > > It works for me but I'm interested if this problem (variable number of > arguments) can be resolved the other way, without introducing > additional 'CommandParam' class. > > -- > > 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=. > > > -- 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=.
