1

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

因此,给定代码,例如:

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

如果 foo 的最终实现有:

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

如何让 GIN 自动将 bar 注入返回的 foo 实例?

4

1 回答 1

2

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

void injectBaseView(BaseView view);

在您的 ginjector 中,只会处理在 BaseView 上声明的字段/设置器。

编辑:另外,如果没有声明绑定,GWT.create 将用于创建一个实例,这样你就可以吃蛋糕了。据我所知,一个例外是当您想要 GWT.create 一种类型但返回另一种类型时(请参阅 RPC 接口以获取示例)。

于 2011-12-05T23:29:41.320 回答