【发布时间】:2010-04-12 17:31:43
【问题描述】:
我正在尝试使用新的 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 是 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>()
知道这里可能出了什么问题吗?
【问题讨论】:
-
我无法将 UIBinder 与内部类的小部件一起使用。把内部类拉出来能行吗?
-
对于它的价值,我得到了我需要的功能,而无需使用
@UiHandler-annotated 方法覆盖 FileUpload 类。所以我想这个特定的问题是没有实际意义的——不过,我想明确地听到使用这样的内部类是否是禁止的。 -
我认为问题出在非静态内部类。你能把它变成一个静态内部类吗?如果它是一个非静态类,GWT 也必须创建一个外部类的对象(我的猜测),这就是问题所在..