gwt uibinder方法返回类型void?

qlfbtfca  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(328)

下面是一些来自google的java代码 UIBinder 辅导的。与一个单独的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 打电话 nameSpan . 既然它有一个 void 返回类型?

yr9zkbsy

yr9zkbsy1#

解释很简单,文档中的示例“有点”不完整。
实施 setElement() 以及 getElement() 如果示例只是像这样扩展uiobject,那么就没有必要了

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“hello world”示例的一个独立变体(作为第一个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);
  }
}

相关问题