Java: get results from anonymous class operation

Go To StackoverFlow.com

0

I want to do something like this:

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;
    }

But I can't access scadenze in the inner class, since it's not final. However, final wouldn't help: it makes a constant.

What's the workaround?

2012-04-04 08:21
by Fabio B.


2

Make scadenze final and initialise it to a new List. Inside your anon class you can still add to the list; being declared final does not prevent this.

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-04 08:25
by Qwerky
Ads