0

以下は、 GoogleのUIBinderチュートリアルからのJavaコードです。このコードは、別のHTMLページとともに、「Hello、World」というテキストを表示します。

public class HelloWorld {
    interface MyUiBinder extends UiBinder<DivElement, HelloWorld> {}
    private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);

    @UiField SpanElement nameSpan;

    public HelloWorld() {
        setElement(uiBinder.createAndBindUi(this));
    }

    public void setName(String name) { 
        nameSpan.setInnerText(name); 
    }

    /**
    * Method in question
    */
    public void Element getElement() { 
        return nameSpan; 
    }
}

getElement()メソッドにはvoidの戻り型がありますが、Element呼び出された。を返しますnameSpanvoidリターンタイプがある場合、これはどのように可能ですか?

4

1 に答える 1

1

説明は、ドキュメントの例が「少し」壊れているということです。

例がUIObjectを次のように単純に拡張した場合、setElement()との実装はとにかく不要です。getElement()

public class HelloWorld extends UIObject {

  private static HelloWorldUiBinder uiBinder = 
        GWT.create(HelloWorldUiBinder.class);

  interface HelloWorldUiBinder extends UiBinder<Element, HelloWorld> {
  }

  @UiField
  SpanElement nameSpan;

  public HelloWorld() {
    setElement(uiBinder.createAndBindUi(this));
  }

  public void setName(String name) { 
    nameSpan.setInnerText(name); 
  }

}

ちなみに、これはUiBinderの「helloworld」の例のスタンドアロンのバリエーションです(最初のUiBinderの例として理解しやすいかもしれません)。

public class HelloWorld implements EntryPoint {

  interface HelloWorldUiBinder extends UiBinder<Element, HelloWorld> {
  }

  @UiField SpanElement nameSpan;

  public void onModuleLoad() {
    final HelloWorldUiBinder uiBinder = GWT.create(HelloWorldUiBinder.class);
    final Element element = uiBinder.createAndBindUi(this);
    nameSpan.setInnerText("world");
    Document.get().getBody().appendChild(element);
  }
}
于 2012-08-25T14:21:23.063 に答える