2011-12-05 34 views
1

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

因此,考虑到这样的代码:如果

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

Foo的最终实现有:

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

我怎么用吧GIN注入返回foo的实例会自动?

回答

2

您的Ginjector可以添加方法以注入以某种其他方式创建的对象。这些必须采取一个参数,并应指定可能的最具体的类型。例如,如果MyViewImpl延伸基本视角,这两种类型有依赖注入,但你在ginjector声明

void injectBaseView(BaseView view); 

,只有基本视点声明的领域/ setter方法将被处理。

编辑:另外,如果没有声明绑定,GWT.create将用于创建一个实例,所以你可以有你的蛋糕,吃它。就我所能记得的一个例外是,当你想GWT.create一个类型,但返回另一个类型(例如见RPC接口)。