2012-04-04 39 views
0

結果我想要做這樣的事情:的Java:從匿名類操作

public class ScadenzaService { 

    ... 
    public List<Scadenza> tutteLeScadenze() { 

     List<Scadenza> scadenze = null; 

     txm.doInTransaction(new TransactionAction() { 
      @Override 
      public void perform() { 
       scadenze = dao.getAll(Scadenza.class);    
      } 
     }); 

     return scadenze; 
    } 

但我不能在內部類訪問scadenze,因爲它不是最終的。然而,最後的結果不會有幫助:它會保持不變。

解決方法是什麼?

回答

2

使scadenze最終並初始化爲新的List。在你的匿名課堂內,你仍然可以添加到列表中;被宣佈爲最終並不妨礙這一點。

public List<Scadenza> tutteLeScadenze() { 

    final List<Scadenza> scadenze = new ArrayList<Scadenza>(); 

    txm.doInTransaction(new TransactionAction() { 
     @Override 
     public void perform() { 
      scadenze.addAll(dao.getAll(Scadenza.class)); 
     } 
    }); 

    return scadenze; 
}