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