gwt
  • uibinder
  • 2010-04-12 9 views 1 likes 
    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>() 
    

    어떤 문제가 발생할 수 있습니까?

    +0

    UIBinder를 내부 클래스 인 위젯과 함께 사용할 수 없었습니다. 내부 클래스를 풀면 작동합니까? –

    +0

    그게 무슨 가치가 있는지, 대신에 @UiHandler'-annotated 메소드를 사용하여 FileUpload 클래스를 오버라이드 할 필요없이 필요한 기능을 얻었습니다. 그래서이 특정 질문은 논리적으로 생각됩니다. 여전히, 내부 클래스를 사용하는 것이 verboten인지 확실하게 듣고 싶습니다. – aarestad

    +4

    문제가되는 것은 비 정적 인 내부 클래스라고 생각합니다. 정적 인 내부 클래스로 만들 수 있습니까? 정적이 아닌 클래스 인 경우 GWT는 외부 클래스의 객체를 만들어야합니다 (내 추측). –

    답변

    3

    정적이 아닌 내부 클래스는 포함하는 클래스의 인스턴스 내에서 인스턴스화해야합니다. 이것은 필요할 때 UiBinder가 인스턴스화하는 것을 금지합니다. 정적 중첩 클래스를 대신 사용해보십시오.

    관련 문제