android - Roboguice @Inject 服务困惑

标签 android dependency-injection guice code-injection roboguice

private Service service;

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

@Inject
private Service service;

有人能告诉我这两种注入(inject)方式的区别吗?

最佳答案

第一个说注入(inject)器将调用您的构造函数并提供适当的服务对象。您在构造函数中做什么由您决定。

第二个说它会适本地设置你的成员变量(意味着你可以有一个默认构造函数,它仍然会神奇地为你设置变量)。

一般来说,我更喜欢第一种,因为它使您的依赖关系明确,但我确信使用方法 2 有充分的理由。

我没有使用过 RoboGuice,但我认为它具有与常规 Guice 相同的一般原则 - 一些相关的 @Inject 文档在他们的 wiki 上:http://code.google.com/p/google-guice/wiki/Injections

关于android - Roboguice @Inject 服务困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6529192/

相关文章:

android - 使用 fragment 返回堆栈处理 ActionBar 标题?

android - Android中的 9-patch 图像错误

android - Jetpack 中是否有类似颤动的热重载?

java - google guice 内部是如何工作的

java - Play Framework 2.4 - 依赖注入(inject)来替换 GlobalSettings.onStart()

java - 如何提前获取我的 Button 的尺寸?

java - 在 spring bean 中自动装箱

java - Guice:使用@Named 创建对象

java - 将值绑定(bind)到 Guice 中的两种可能性之一

java - Guice:是否可以根据实例是否存在于类路径中来注入(inject)实例?