java - 如何使用通用界面配置 Google-Guice?

标签 java guice

我有一堆实体类型工厂,它们派生自一个通用的通用接口(interface)。例如,

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

我想使用 Google-Guice打破对这些工厂的硬依赖。

但是,当我尝试配置 Guice 时出现语法错误:

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

Eclipse 说“无法将 IEntityFactory 解析为变量。”

有人可以帮我理解为什么这不起作用吗?另外,是否有其他可用的语法?

最佳答案

我的 Guice-fu 通常是有限的,但我认为你需要一个类型文字:

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

关于java - 如何使用通用界面配置 Google-Guice?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6142177/

相关文章:

java - 如何从包名中删除上层目录

java - Maven 找不到 persistence.xml

java - GWT Gin 2.1 不支持的主要.次要版本 51.0

java - Eclipse OSGi 包需要另一个包的片段

java - 检测两张连续图片的变化

java - Eclipse 3.4 文本查看器

java - 我的蓝牙应用随机崩溃并出现错误 : Error receiving broadCast Intent

java - BST 时间错误

java - 在运行时使用注释获取 guice 对象?

java - MyBatis - 在同一服务调用中连接到多个数据库