将Gin注入由GWT.create创建的实例中

时间:2011-12-05 18:27:38

标签: gwt gin

我有一个实例化对象的自定义延迟绑定器(重新绑定实现)。我想在GIN实现的GWT.create()返回的实例中有一些依赖项(@Inject annotated setter方法)。这可能吗?

所以,给出如下代码:

Foo foo = GWT.create(Foo.class);

如果foo的最终实现有:

@Inject
public void setBar(Bar bar) {
    ...
}

如何通过GIN自动将条形注入到返回的foo实例中?

1 个答案:

答案 0 :(得分:2)

您的Ginjector可以添加方法,以便注入以其他方式创建的对象。这些必须采用一个参数,并应指定可能的最具体类型。例如,如果MyViewImpl扩展了BaseView,并且两种类型都具有要注入的依赖关系,但是您声明了

void injectBaseView(BaseView view);

在你的ginjector中,只会处理在BaseView上声明的字段/ setter。

编辑:此外,如果没有声明绑定,GWT.create将用于创建一个实例,所以你可以吃蛋糕并吃掉它。据我所知,一个例外是当你想要GWT.create一种类型,但返回另一种类型时(参见RPC接口的例子)。