1
나는 새로운 GWT 2.0 UIBinder 능력에 내 손을 시도하고, 나는이처럼 보이는 UI를 XML이 :GWT UIBinding는 찾을 수없는 제로 인수 생성자
<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이입니다 FileUploadGWT 클래스를 확장하는 FileUploadPanel에 포함 된 정적이 아닌 내부 클래스입니다. 여기에는 단순히 super()
을 호출하는 명시적인 0 인수 생성자가 있습니다. 그러나 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 클래스를 오버라이드 할 필요없이 필요한 기능을 얻었습니다. 그래서이 특정 질문은 논리적으로 생각됩니다. 여전히, 내부 클래스를 사용하는 것이 verboten인지 확실하게 듣고 싶습니다. – aarestad
문제가되는 것은 비 정적 인 내부 클래스라고 생각합니다. 정적 인 내부 클래스로 만들 수 있습니까? 정적이 아닌 클래스 인 경우 GWT는 외부 클래스의 객체를 만들어야합니다 (내 추측). –