I am sure I didn't had boilerplate code generation in mind when I said that. As far as I remember the point I wanted to make was that you can have a service interface what has say 1 parameter:
interface Service<T> {
void doIt(T value);
}
when binding this to you actual implementation method this method can have one or more parameters of which all but the one of your interface will be figured out automatically according to your bind. Say you implemented it like this:
void doItImpl(Context c, Foo f, Bar b) {
//...
}
So you inject a
Service<Foo> somewhere than you'll automatically get it backed by the implementation above having all the other parameters also injected. In that sense I see it having similarities to the assisted inject feature as you just pass to a call what isn't the job of the DI tool to inject.
Note that the sequence of those parameters doesn't play a role so this is very refactoring-safe. The method (usually) is just determined by return type and having a parameter of the actual type parameter of your service. I say usually since you can customise this easily.
With that in mind this is not appropriate to use with e.g. something like String. The whole idea of service methods is based on having one distinct parameter type per function.
Cheers, Jan