2010-04-12 6 views
1

J'essaie ma main à la nouvelle capacité de UIBinder GWT 2.0, et j'ai XML ui qui ressemble à ceci:GWT UIBinding ne peut pas trouver constructeur zéro arg

<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 est un classe interne non statique contenue dans FileUploadPanel qui étend la classe GWT FileUpload. Il a un constructeur explicite de zéro-arg qui appelle simplement super(). Cependant, lorsque GWT démarre, j'obtiens cette erreur:

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>() 

Une idée de ce qui pourrait ne pas aller ici?

+0

Je n'ai pas été capable d'utiliser UIBinder avec des widgets qui sont des classes internes. Est-ce que ça marche si vous sortez la classe intérieure? –

+0

Pour ce que ça vaut, j'ai la fonctionnalité dont j'ai besoin sans avoir à surcharger la classe FileUpload en utilisant une méthode annotée '@ UiHandler'. Donc, je suppose que cette question particulière est discutable - encore, je voudrais entendre définitivement si l'utilisation de classes intérieures comme celle-ci est verboten. – aarestad

+4

Je pense que c'est la classe interne non statique qui est le problème. Pouvez-vous en faire une classe interne statique? Si c'est une classe non statique, GWT devrait aussi faire un objet de la classe externe (ma conjecture), et c'est là que les choses se brisent. –

Répondre

3

Une classe interne non statique doit être instanciée dans une instance de sa classe conteneur. Cela interdit à UiBinder de l'instancier en cas de besoin. Essayez d'utiliser une classe imbriquée statique à la place.

Questions connexes