I'm attempting to short-circuit a lot of code by making my Factory
interfaces extend Guava's Function:
http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Function.html

public class TestAssisted {
    interface Factory extends Function<String, TestAssisted> {}

    @Inject
    public TestAssisted(@Assisted String contents){}
}

I then bind it with:
bind(new TypeLiteral<Function<String,TestAssisted>>()
{}) .toProvider( FactoryProvider.newFactory( 
TestAssisted.Factory.class,TestAssisted.class );

This seems to be okay, but Guice trips over Function's equal's method:

 No implementation for java.lang.String annotated with
@com.google.inject.assistedinject.Assisted(value=) was bound.
  while locating java.lang.String annotated with
@com.google.inject.assistedinject.Assisted(value=)
    for parameter 0 at
com.billco.commons.test.TestAssisted.<init>(TestAssisted.java:18)
  at com.google.common.base.Function.equals(Function.java:1)

Do I have any options to have Guice more or less ignore the "equals"
method declared in Function? I can't think of a good way to stick to
interfaces and yet remove the necessity to implement "equals".

Thanks for your help,
-Dan

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