GWT UIBinding не может найти конструктор с нулевым аргументом - PullRequest
1 голос
/ 12 апреля 2010

Я пробую свои силы в новой возможности GWT 2.0 UIBinder, и у меня есть пользовательский интерфейс 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 - это нестатический внутренний класс, содержащийся в FileUploadPanel, который расширяет класс FileUpload GWT. У него есть явный конструктор с нулевым аргументом, который просто вызывает 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>()

Есть идеи, что здесь может пойти не так?

1 Ответ

3 голосов
/ 15 апреля 2010

Необходимо создать нестатический внутренний класс в экземпляре содержащего его класса. Это запрещает UiBinder создавать его экземпляры при необходимости. Попробуйте вместо этого использовать статический вложенный класс.

...