2

私は新しい GWT 2.0 UIBinder 機能を試しています。次のような ui XML があります。

<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:my='urn:import:com.mystuff.mypackage'>
<g:VerticalPanel>
      <!-- other stuff -->
  <my:FileUploadPanel.ValidatingFileUpload styleName="field" ui:field="fileUpload" />
</g:VerticalPanel>

ValidatingFileUpload は、FileUpload GWT クラスを拡張する FileUploadPanel に含まれる非静的内部クラスです。単純に呼び出す引数なしの明示的なコンストラクターがありますsuper()。ただし、GWT の起動時に次のエラーが発生します。

00:00:18.359 [ERROR] Rebind result 'com.mystuff.mypackage.FileUploadPanel.ValidatingFileUpload' has no default (zero argument) constructors.
java.lang.NoSuchMethodException: com.mystuff.mypackage.FileUploadPanel$ValidatingFileUpload.<init>()

ここで何がうまくいかないのでしょうか?

4

1 に答える 1

4

非静的内部クラスは、それを含むクラスのインスタンス内でインスタンス化する必要があります。これにより、必要に応じて UiBinder がインスタンス化できなくなります。代わりに、ネストされた静的クラスを使用してみてください。

于 2010-04-14T23:05:32.630 に答える