手动实例化PresenterWidget(GWTP)



我是GWT、GWTP的新手。

我有一个PresenterWidget,它被实例化多次并添加到一个插槽中。我想以编程方式定义实例的数量。我只知道我通过注入它来创建一个新的Widget实例

@Inject MyWidgetPresenter first; 
@Inject MyWidgetPresenter second; 
// ...

我可以用new实例化它吗?如何实例化视图?

我尝试使用复合,因为它似乎是最聪明的解决方案,因为它无论如何都不包含太多逻辑。但是我不能将复合添加到槽中。

提前感谢

在GWTP 1.0中,不再需要Gijector(由GWTP自动生成)。

在您的情况下(每次您需要一个类的多个实例时),最好的方法是注入WidgetPresenter的Provider:

@Inject Provider<MyWidgetPresenter> myWidgetPresenterProvider; 

每次您需要MyWidegtPresenter的新实例时,请调用提供程序上的get()方法:

MyWidgetPresenter myWidgetPresenter = myWidgetPresenterProvider.get();

您可以获取ClientGinjector引用并调用getYourPresenter()方法。如果它被声明为@Singleton,它将返回相同的实例,如果不是,它将创建一个新实例,与使用new相同,但将所有参数注入构造函数。这将与向字段中添加@Inject相同。

已添加:如果您在ClientGinjector中没有所需的演示者,您可以简单地在该接口上编写一个getter方法。例如:

public interface ClientGinjector extends Ginjector {
    ....
    SideMenuPresenter getSideMenuPresenter();
    ....
}

相关内容

  • 没有找到相关文章

最新更新