错误:从内部类中访问局部变量事件;需要宣布最终

时间:2014-03-24 20:11:26

标签: java gwt smartgwt

我有这段代码要求用户在删除行时确认。

 @Override
    public void onRemoveRecordClick(RemoveRecordClickEvent event)
    {
        SC.confirm("Are you sure to delete ?", new BooleanCallback() {
            public void execute(Boolean value) {
                if (value != null && value) {
                    event.cancel();
                    removeData(getDataAsRecordList().get(event.getRowNum()));
                } else {

                }
            }
        });
    }

但我收到错误local variable event is accessed from within inner class; needs to be declared final

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

进行此更改:

public void onRemoveRecordClick(final RemoveRecordClickEvent event)

方法execute()需要保证变量event在需要时不会消失(被重新分配)。您通过将其声明为最终保证来提供此保证。现在,一旦这个方法需要,编译器就知道在哪里找到这个变量。