Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Guice:无法插入辅助列表<;长期>;_Java_Dependency Injection_Guice_Guice 3 - Fatal编程技术网

Java Guice:无法插入辅助列表<;长期>;

Java Guice:无法插入辅助列表<;长期>;,java,dependency-injection,guice,guice-3,Java,Dependency Injection,Guice,Guice 3,我刚开始学习如何使用Guice,在配置辅助注射时遇到了一些问题。我有以下界面: public interface Individual extends Comparable<Individual>, Iterable<Long>{ ... } 问题是,运行项目时会显示此错误: 1) No implementation for java.util.ArrayList<java.lang.Long> annotated with @com.google.inje

我刚开始学习如何使用Guice,在配置辅助注射时遇到了一些问题。我有以下界面:

public interface Individual extends Comparable<Individual>, Iterable<Long>{ ... }
问题是,运行项目时会显示此错误:

1) No implementation for java.util.ArrayList<java.lang.Long> annotated with @com.google.inject.assistedinject.Assisted(value=) was bound.
  while locating java.util.ArrayList<java.lang.Long> annotated with @com.google.inject.assistedinject.Assisted(value=)
    for parameter 3 at implementation.entities.IndividualImpl.<init>(IndividualImpl.java:25)
  at SimpleModule.configure(SimpleModule.java:36)
1)未绑定用@com.google.inject.assistedinject.Assisted(value=)注释的java.util.ArrayList的实现。
查找用@com.google.inject.assistedinject.Assisted(value=)注释的java.util.ArrayList时
对于implementation.entities.IndividualImpl.(IndividualImpl.java:25)中的参数3
在SimpleModule.configure(SimpleModule.java:36)上
如果我只是删除辅助参数(不仅是注释,还有参数本身),一切都会正常工作。我不知道我做错了什么。我遵循了我找到的所有Guice教程,但找不到使用列表的辅助参数示例;但是,例如,即使将此参数更改为整数,也会出现相同的错误。

删除:

bind(Individual.class).to(IndividualImpl.class);
使用您指定的绑定将IndividualImpl用于@InjectIndividual。这毫无意义,因为您不会在代码中的任何地方@injectindividual。您将@InjectionIndividualFactory替代

一点也不可能的是

bind(Individual.class).toProvider(BlowUpWithUseFactoryExceptionProvider.class);
但这样做毫无意义,因为默认beahavior是类似的

我可以建议:

Iterable<Long> -> DnaContaining
List<Long> -> DnaMaterial
Iterable->DnaContaining
列表->数据材料
删除:

bind(Individual.class).to(IndividualImpl.class);
使用您指定的绑定将IndividualImpl用于@InjectIndividual。这毫无意义,因为您不会在代码中的任何地方@injectindividual。您将@InjectionIndividualFactory替代

一点也不可能的是

bind(Individual.class).toProvider(BlowUpWithUseFactoryExceptionProvider.class);
但这样做毫无意义,因为默认beahavior是类似的

我可以建议:

Iterable<Long> -> DnaContaining
List<Long> -> DnaMaterial
Iterable->DnaContaining
列表->数据材料

这完全有道理。我以前试过这个,但做错了什么,无法确定是什么。现在它只是起作用了。根据你的建议,我喜欢它。我必须修改代码中的某些内容,但我肯定会这样做。这完全是有道理的。我以前试过这个,但做错了什么,无法确定是什么。现在它只是起作用了。根据你的建议,我喜欢它。将不得不改变一些代码,但我一定会这样做。