我从GWT项目获得以下代码,该代码是onModuleLoad()方法的一部分(如果您不知道GWT,则类似于Java的main方法):

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.");
    }
});


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

最佳答案

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

10-04 17:29