0

我有以下模块可以转换为 Guice:

Serializer serializer = new SerializerBinaryImpl("testdong");
Dong dong = new DongImplementation();
View view = new TextView(dong);
dong.setSerializer(serializer);
view.setDong(dong);

这是我到目前为止所拥有的:

bind(String.class).annotatedWith(Name.class).toInstance("testdong"); 
bind(Serializer.class).to(SerializerBinaryImpl.class);
bind(Dong.class).to(DongImplementation.class);
bind(View.class).to(TextView.class);

//dong.setSerializer(serializer); - Not sure how to do      
//view.setDong(dong); - Not sure how to do

简单的解决方案是最好的解决方案。这只是一个简单的项目。

4

1 回答 1

1

您必须使用@Inject(这称为方法/属性注入)注释方法:

@Inject
public void setSerializer(Serializer serializer) {
    this.serializer = serializer;
}

...

@Inject
public void setDong(Dong dong) {
    this.dong = dong;
}

这不再是在您的模块中进行的配置。Guice 会自动注入:

  • DongImplementation在你的TextView
  • SerializerBinaryImpl在里面DongImplementation
于 2013-04-22T14:48:04.477 回答