0

我想做这样的事情:

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,因为它不是最终的。但是, final 无济于事:它是一个常数。

解决方法是什么?

4

1 回答 1

2

制作scadenzefinal 并将其初始化为新的List. 在您的匿名课程中,您仍然可以添加到列表中;被宣布为 final 并不能阻止这一点。

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;
}
于 2012-04-04T08:25:55.830 回答