何时以及为什么EventHandler要求对象是最终的?

时间:2010-05-11 08:37:52

标签: java gwt event-handling final

我有一个来自GWT项目的代码,它是onModuleLoad()方法的一部分(类似于Java的main方法,如果你不知道GWT):

final TextBox t1 = new TextBox();
final Label lt1 = new Label(); 

t1.addKeyUpHandler(new KeyUpHandler() {

    @Override
    public void onKeyUp(KeyUpEvent event) {
        // TODO Auto-generated method stub
        if (!(t1.getText().matches("\\w{2}-\\w{2}-\\w{2}")))
            lt1.setText("Invalid.");
            else
            lt1.setText("OK.");
    }
});

为什么这两个局部变量必须是最终的?

1 个答案:

答案 0 :(得分:3)

这个问题是关于本地内部类访问方法的局部变量的更一般问题的特化:method local innerclasses accessing the local variables of the method(PéterTörök,tnx指出了这一点)。