Roboguice @Inject 服务混淆问题

3
private Service service;

@Inject
public ClassName(final Service service) {
    this.service = service;
}

@Inject
private Service service;

请问有人能告诉我这两种注入方式的区别吗?

1个回答

2
第一个方法说的是注入器将调用您的构造函数并提供适当的Service对象。在构造函数中所做的事情取决于您。
第二个方法说的是它将适当地设置您的成员变量(这意味着您可以有一个默认构造函数,它仍然会为您自动设置变量)。
通常,我更喜欢第一个方法,因为它使您的依赖关系明确,但我相信使用第二个方法有很好的理由。
我没有使用过RoboGuice,但我假设它具有与常规Guice相同的一般原则-相关的@Inject文档可在其wiki上找到:http://code.google.com/p/google-guice/wiki/Injections

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接