Ответ 1
Я бы просто превратил объект HandlerRegistration
в поле охватывающего класса, таким образом, вы не будете обеспокоены компилятором, и он будет более "элегантным", чем перетасовка массивов и прочее:
public class TestWidget extends Composite {
//...
HandlerRegistration handler;
public TestWidget() {
// ...
handler = button.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// ...
handler.removeHandler();
}
});
}
}