2014-03-24 33 views
0

我有這段代碼要求用戶確認何時刪除一行。錯誤:從內部類訪問局部變量事件;需要聲明爲最終

@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

我怎樣才能解決這個問題?

回答

2

使這一變化:

public void onRemoveRecordClick(final RemoveRecordClickEvent event) 

​​需要保證變量event是不會消失的方法(重新分配)通過它所需的時間。您通過聲明爲最終提供此保證。現在編譯器知道一旦這個方法需要它就找到這個變量。

相關問題