java - GWT GIN 提供程序编译错误

标签 java gwt guice gwt-gin

我正在尝试配置我的 GIN 模块以将 ActivityManager 请求绑定(bind)到 DefaultActivityManagerProvider:

import com.google.inject.Provider;

public class DefaultActivityManagerProvider implements Provider<ActivityManager> {
    @Override
    public ActivityManager get() {
        return new ActivityManager(new MyDefaultActivityMapper());
    }
}

但是当我实际绑定(bind)它时:

public class MyAppGinModule extends AbstractGinModule {
    @Override
    protected void configure() {
        bind(ActivityManager.class).toProvider(DefaultActivityManagerProvider.class);
    }
}

我在 bind(...) 语句上遇到编译错误:

Bound mismatch: The generic method toProvider(Class<I>) of type
GinLinkedBindingBuilder<T> is not applicable for the arguments
(Class<DefaultActivityManagerProvider>). The inferred type
DefaultActivityManagerProvider is not a valid substitute for the
bounded parameter <I extends Provider<? extends ActivityManager>>

我在这里做错了什么?!?我遵循了无数的例子,例如 this one并且不明白为什么我会收到错误!提前致谢!

最佳答案

toProvider 未得到正确支持

http://code.google.com/p/google-gin/wiki/GinFaq

http://code.google.com/p/google-gin/wiki/GuiceCompatibility

提供者需要是公共(public)静态的

static class DefaultActivityManagerProvider implements Provider<ActivityManager> {
    @Override
    public ActivityManager get() {
        return new ActivityManager(new MyDefaultActivityMapper());
    }
}

关于java - GWT GIN 提供程序编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13434690/

相关文章:

java - 使用 Eclipse IDE 的 Java 代码中的 Class.forName 问题

java - 如何发布和使用依赖本地项目的 gradle 插件?

gwt - 是否可以在悬停时向 SmartGWT listGrid 单元格添加工具提示?

gwt - GWT和Cappuccino在移动设备上运行缓慢吗?

java - Deploy GWT maven project with eclipse 部署webapp目录而不是target/project目录

java - 配置 Jetty、Jersey 和 Guice

java - Java 子字符串错误索引越界

java - DAO工厂 : return a new instance or always the same?

java - Guice:类或实例级绑定(bind)注释

java - play 2.5 生产模式无法在应用程序启动时运行的 Singleton 类中使用注入(inject)的 ConfigurationProvider 类对象