我可以使用 GIN 在 GWT 中以常规 类 注入对象吗?

Can I inject objects in regular classes in GWT using GIN?

例如,我有 GIN 模块,其中包含 class A 的绑定。在 class B 中(B 未使用 GIN 绑定),我可以简单地使用:

@Inject private A a;

注入classA​​?我在我的项目中尝试过,看起来我得到了对象 a 的空指针。不知道为什么。

因为您还需要用 GIN 实例化 B class。

例如,对于@UiFields,您可以使用(前提是)然后将它们注入构造函数,如下所示:

    /*Class B is not binded by GIN*/
    public class B {
        @Inject
        C cInstance; //C is binded by GIN
    }

/*Class A is binded with GIN*/
    public class A extends ViewImpl{

                @UiField(provided=true)
                B myWidget;

                //and then

                @Inject
                public A (UiBinder binder, B myWidget){
                   this.myWidget = myWidget;  //cInstance inside of it is injected!
                }
        }

在 B 的这种注入之后,B 内部的所有 @Inject 注释都应该按预期解析。

如果您使用 GWT.create / new 关键字实例化 A - B 实例的 myWidget 引用也将为 null