我有一个实例化对象的自定义延迟绑定器(重新绑定实现)。我想在GIN实现的GWT.create()返回的实例中有一些依赖项(@Inject annotated setter方法)。这可能吗?
所以,给出如下代码:
Foo foo = GWT.create(Foo.class);
如果foo的最终实现有:
@Inject
public void setBar(Bar bar) {
...
}
如何通过GIN自动将条形注入到返回的foo实例中?
答案 0 :(得分:2)
您的Ginjector可以添加方法,以便注入以其他方式创建的对象。这些必须采用一个参数,并应指定可能的最具体类型。例如,如果MyViewImpl扩展了BaseView,并且两种类型都具有要注入的依赖关系,但是您声明了
void injectBaseView(BaseView view);
在你的ginjector中,只会处理在BaseView上声明的字段/ setter。
编辑:此外,如果没有声明绑定,GWT.create将用于创建一个实例,所以你可以吃蛋糕并吃掉它。据我所知,一个例外是当你想要GWT.create一种类型,但返回另一种类型时(参见RPC接口的例子)。