我有一个实例化对象的自定义延迟绑定器(重新绑定实现)。我想在 GWT.create() 返回的实例中有一些依赖项(@Inject 带注释的 setter 方法),由 GIN 完成。这可能吗?
因此,给定代码,例如:
Foo foo = GWT.create(Foo.class);
如果 foo 的最终实现有:
@Inject
public void setBar(Bar bar) {
...
}
如何让 GIN 自动将 bar 注入返回的 foo 实例?
您的 Ginjector 可以添加方法以注入以其他方式创建的对象。这些必须采用一个参数,并且应该指定可能的最具体的类型。例如,如果 MyViewImpl 扩展了 BaseView,并且两种类型都有要注入的依赖项,但您声明
void injectBaseView(BaseView view);
在您的 ginjector 中,只会处理在 BaseView 上声明的字段/设置器。
编辑:另外,如果没有声明绑定,GWT.create 将用于创建一个实例,这样你就可以吃蛋糕了。据我所知,一个例外是当您想要 GWT.create 一种类型但返回另一种类型时(请参阅 RPC 接口以获取示例)。