2016-03-10 46 views
1

所以我的問題是,我想在每次「運行」後遞減計數器整數。如果我把Counter--放在代碼中(見註釋),那麼我得到一個錯誤,說「在一個封閉範圍內定義的局部變量計數器必須是最終的或有效的最終的」。定時計數器 - 整數遞減(JAVA)

我怎麼現在可以改變我的代碼,讓「計數器」,int在每次打印之後遞減?

public void RunCounter(int TimeCount) { 
    int Counter = TimeCount 
    Runnable Count = new Runnable() { 
      public void run() { 
       System.out.println(Counter); 
       //Counter--; 
       } 
     }; 
    ScheduledExecutorService executor = Executors.newScheduledThreadPool(1); 
    ScheduledFuture<?> countTimer = executor.scheduleAtFixedRate(Count, 1, 1, SECONDS); 
    executor.schedule(new Runnable() 
     { 
      public void run() { 
       countTimer.cancel(true); 
      } 
     }, TimeCount, SECONDS); 
} 

回答

1

不要聲明counter作爲最終,因爲如果counter是最終不能再更改,不要定義INT計數器在類的全局變量..

+0

謝謝,以爲我測試,如果沒有sucess 。現在它工作正常。 //伊薩克 – Isark