private Service service;
@Inject
public ClassName(final Service service) {
this.service = service;
}
@Inject
private Service service;
有人可以告诉我这两种注射方式之间的区别吗?
答案 0 :(得分:2)
第一个表示注入器将调用构造函数并提供相应的Service对象。你在构造函数中做什么取决于你。
第二个说它会适当地设置你的成员变量(这意味着你可以有一个默认的构造函数,它仍会为你神奇地设置变量)。
一般来说,我更喜欢第一个,因为它保持你的依赖关系是显式的,但我确信使用方法2有充分的理由。
我没有使用RoboGuice,但我认为它与普通Guice具有相同的一般原则 - 并且有一些相关的@Inject文档在他们的维基上:http://code.google.com/p/google-guice/wiki/Injections