Java GWT导出器从GWT.create强制转换异常;尝试将mvp4g与GWT Exporter一起使用,但GWT.create没有';行不通

Java GWT导出器从GWT.create强制转换异常;尝试将mvp4g与GWT Exporter一起使用,但GWT.create没有';行不通,java,gwt,mvp4g,gwt-exporter,Java,Gwt,Mvp4g,Gwt Exporter,我尝试使用GWT Exporter,当我复制示例时,它工作得很好。然后我尝试导出一个mvp4g演示者 以下是我所做的: @Export() @Presenter(view = RegisterPluginDisplay.class) public class RegisterPluginPresenterImpl extends BasePresenter<RegisterPluginView, MyBus implements RootPresenter { ... } public

我尝试使用GWT Exporter,当我复制示例时,它工作得很好。然后我尝试导出一个mvp4g演示者 以下是我所做的:

@Export()
@Presenter(view = RegisterPluginDisplay.class)
public class RegisterPluginPresenterImpl extends BasePresenter<RegisterPluginView, MyBus implements RootPresenter { ... }

public interface RegisterPluginPresenter extends Exportable { ... }

//then in the start event I said:
ExporterUtil.exportAll();
我查看了代码,发现GWT.create()无法成功创建演示者。我尝试创建一个导出的类,然后在其上使用GWT.create,发现我无法将GWT.create与任何实现可导出的类一起使用,即使我不执行ExporterUtils.exportAll()。
Exportable接口的文档说明GWT.create()语句返回一个Exportable。这就解释了类强制转换异常。那么我该如何解决这个问题呢?

mvp4g使用GIN创建演示者的实例。GIN使用
GWT.create(YourPresenter.class)
创建类的实例

只要您没有任何与Presenter类GWT.create相关的延迟绑定规则,它的行为就会像Java中的新规则一样


在使用Exporter接口标记任何内容的情况下,将触发GWT Exporter生成器。生成器创建了无法与mvp4g一起使用的导出器实现。

我切换到使用实验性js互操作,但仍然遇到相同的问题。Mvp4g使用gin获取演示者。根据 “如果GIN找不到类的绑定,它会返回到调用该类上的GWT.create()”来实例化它。它不能在可导出文件上使用GWT.create,因为GWT.create(可导出文件)返回导出程序。就像文档中说的那样,必须绑定类才能不使用GWT.create。解决方案是为类添加绑定。我只需进入GinModule的configure方法并添加以下代码行:

bind(MyPresenter.class).toProvider(MyPresenterProvider.class);
然后我必须创建MyPresenterProvider类:

public static class MyPresenterProvider.class implements Provider<MyPresenter> {
      @Override
    public MyPresenter get() {
        return new MyPresenter();
    }
公共静态类MyPresenterProvider.class实现提供程序{
@凌驾
公共MyPresenter get(){
返回新的MyPresenter();
}

为什么要使用GWT Exporter?我正在使用GWT,但我的Ui程序员希望使用javaScript进行Ui。有关这种情况的详细信息,请参阅此问题:
public static class MyPresenterProvider.class implements Provider<MyPresenter> {
      @Override
    public MyPresenter get() {
        return new MyPresenter();
    }