繁体   English   中英

RoboGuice @注入

[英]RoboGuice @Inject

在我的Android应用程序项目中,我正在使用RoboGuice

在我的项目中,我有一个单例 A类:

@ContextSingleton
public class A{
   …
   public void method1(){…}
}

然后,我有另一个类B,它需要A的实例,因此,以RoboGuice的方式,我通常在注入 B的类B中声明A的实例:

public class B {
  @Inject private A a ;

   public void action(){
        a.method1(); // call method1() of class A's instance
   }
}

有时,对于类B中声明的A实例,我得到了NullPointerException 。我只想验证RoboGuice的一个概念:

是否为了在类B中注入自定义类的实例(例如,类A),必须将类B注入RoboActivity或注入到已在RoboActivity中注入的另一个类(例如C类)中?

您可能自己在某个地方实例化了B( new B() ),然后需要手动调用Injector。

当RoboGuice创建实例B时,它将自动注入依赖项A,但是当您自己创建B时,RoboGuice将不知道它,因此您必须自己调用注入代码。 可以通过调用以下命令来完成:

RoboInjector injector = RoboGuice.getInjector(context);
injector.injectMembersWithoutViews(yourObjectB);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM