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

finalscadenzeにして、新しい に初期化しますList。anon クラス内では、引き続きリストに追加できます。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 に答える