1

我有来自 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.");
    }
});

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

4

1 回答 1

3

这个问题是关于局部内部类访问方法的局部变量的更一般问题的专门化:方法局部内部类访问方法的局部变量(PéterTörök,tnx 指出这一点)。

于 2010-05-11T09:11:23.760 回答