开发者

How do I configure Google-Guice using a generic interface?

I have a bunch of entity type factories that derive from a common, generic interface. For instance,

public class ConnectionFactory implements IEntityFactory<Connection> { ... }

I'd like to use Google-Guice to break hard dependencies on these factories.

However, there's a syntax error when I try to con开发者_StackOverflowfigure Guice:

public class EntityFactoryModule extends AbstractModule {
    @Override
    protected void configure() {
        bind(IEntityFactory<Connection>.class).to(ConnectionFactory.class);
    }
}

Eclipse says "IEntityFactory cannot be resolved to a variable."

Can someone please help me understand why this doesn't work? Also, is there an alternate syntax that will work?


My Guice-fu is generally limited, but I think you want a type literal here:

bind(new TypeLiteral<IEntityFactory<Connection>>() {})
    .to(ConnectionFactory.class);


One method is to declare a new interface:

interface IConnectionFactory extends IEntityFactory<Connection> { ...}

Then I can do:

bind(IConnectionFactory.class).to(ConnectionFactory.class);

But, there's already an interface explosion going on in my project. Is there a better way?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜