我一直在尝试使用Google Guice进行eclipse插件开发。我已经导入 Guice jar 作为另一个插件项目。但不知何故 Guice 无法注入(inject)依赖。
有什么想法吗???
这是错误消息
com.google.inject.ConfigurationException: Guice configuration errors:
1) No implementation for java.util.List<java.lang.String> was bound.
while locating java.util.List<java.lang.String>
for parameter 1 at com.checker.extension.provider.util.PluginUtils.<init>(Unknown Source)
while locating com.checker.extension.provider.util.PluginUtils
1 error
编辑1
我想提一下的一件事是,当我使用普通Java应用程序时,配置工作正常,但当我使用插件项目时,配置工作不正确
编辑2 下面是我正在使用的代码
@Override
protected void configure() {
bind(List.class).toInstance(DIObjects.buildFolderNames);
}
这里DIObjects.buildFolderNames
是我需要注入(inject)的静态字段。
DIObjects.buildFolderNames 定义如下。
public static List<String> buildFolderNames;
我已经初始化了这个字段。
问题是因为eclipse和Guice的类加载器不同吗???
最佳答案
您需要使用 TypeLiteral执行这样的绑定(bind),例如:
bind(new TypeLiteral<List<String>>(){}).toInstance(new ArrayList<String>());
有关绑定(bind)的更多信息,请访问 here .
关于java - Eclipse - Google Guice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3476295/