我有这段代码要求用户在删除行时确认。
@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
我该如何解决这个问题?
答案 0 :(得分:2)
进行此更改:
public void onRemoveRecordClick(final RemoveRecordClickEvent event)
方法execute()
需要保证变量event
在需要时不会消失(被重新分配)。您通过将其声明为最终保证来提供此保证。现在,一旦这个方法需要,编译器就知道在哪里找到这个变量。