Java 如何注入一个列表或一套在匕首,因为我们可以做它在春天?

Java 如何注入一个列表或一套在匕首,因为我们可以做它在春天?,java,dependency-injection,dagger,Java,Dependency Injection,Dagger,一切都有问题。例如,对于包含字符串列表的Foo类: public class Foo { private List<String> fooList; //getter and setter } 公共类Foo{ 私人名单傻瓜; //接二连三 } 在Xml中,我们可以执行以下操作: <bean id="foo" class="Foo"> <property name="fooList"> <list> <

一切都有问题。例如,对于包含字符串列表的Foo类:

public class Foo {

 private List<String> fooList;

 //getter and setter

}
公共类Foo{
私人名单傻瓜;
//接二连三
}
在Xml中,我们可以执行以下操作:

<bean id="foo" class="Foo">
  <property name="fooList">
     <list>
        <value>bar</value>
        <value>baz</value>           
    </list>
</property>

酒吧
巴兹

使用Dagger,您需要将您的
傻瓜
转化为您的
Foo
类的依赖项。您可以使用
@Inject
对其进行注释。这将告诉Dagger,当Dagger创建了
Foo
时,也需要注入
List-dullist
。请记住,在我的示例中,
愚人者
不是私有的。因为Dagger不使用反射,而是使用代码生成,所以您必须将可注入字段声明为公共或私有范围

public class Foo {

    @Inject
    @Named("FooDependency")
    List<String> footList;

    // getter and setter

}
那你就可以用了

ObjectGraph objectGraph = ObjectGraph.create(new SomeModule());
Foo foo = objectGraph.get(Foo.class);

看起来您必须为此创建一个提供程序,请参见类似问题的答案
ObjectGraph objectGraph = ObjectGraph.create(new SomeModule());
Foo foo = objectGraph.get(Foo.class);