I'm reading the docs on the UIBinder
of GWT and the first code snippet made me confused:
public class HelloWorld extends UIObject { // Could extend Widget instead
interface MyUiBinder extends UiBinder<DivElement, HelloWorld> {}
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
@UiField SpanElement nameSpan;
public HelloWorld() {
// createAndBindUi initializes this.nameSpan
setElement(uiBinder.createAndBindUi(this));
}
}
On the second line an interface is created locally which extends the UiBinder
interface. However, on the third line an instance of this interface is created using GWT.create()
.
How is this possible? There's nowhere a class that implements MyUiBinder
, so it can't be instantiated, right?