La meilleure façon de prévenir les modifications simultanées exception

Voici le pseudo-code comme suit.

public class MyObject
{   
    private List<Object> someStuff;
    private Timer timer;

    public MyObject()
    {
        someStuff = new ArrayList<Object>();

        timer = new Timer(new TimerTask(){

            public void run()
            {
                for(Object o : someStuff)
                {
                    //do some more stuff involving add and removes possibly
                }
            }
        }, 0, 60*1000);
    }

    public List<Object> getSomeStuff()
    {
        return this.someStuff;
    }
}

Donc, essentiellement, le problème est que d'autres objets ne figurant pas dans le code ci-dessus appel getSomeStuff() pour obtenir la liste de lecture seule. Je suis concurrentmodificationexception dans le thread horloge lorsque cela se produit. J'ai essayé de faire le getSomeStuff méthode synchronisée, et même essayé de blocs synchronisés dans le thread horloge, mais toujours gardé l'obtention de l'erreur. Quelle est la méthode la plus simple de l'arrêt de l'accès simultané de la liste?

OriginalL'auteur thatidiotguy | 2012-04-18