同步和空检查问题

时间:2013-07-16 15:41:32

标签: java nullpointerexception locking synchronized

我最近遇到了我的代码问题,我有1个线程执行并运行游戏,另一个线程检查可能在事件中调用的所有事件:

活动示例:

       try {
            if (currentMinigame != null) {
            //Longer code and method execution time would usually be here, 
            //but for the sake of simplicity, I'll just use this
                currentMinigame.onEntityShootBow(e);
            }
        } catch (Exception ex) {
            exitEarly(ex);
        }

问题在于,在某些时候,执行迷你游戏的线程会将currentMinigame设置为null。此时,将在行上调用空指针:currentMinigame.onEntityShootBow(e);

是否有一种简单的方法可以同步所有这些事件? (大约有25个)

我想过要用 Object currentMinigameLock = new Object(); Synchronized(currentMinigameLock) 并通过每个事件,但每次我使用同步;我几乎从来没有看到过变化,这是重构的大量代码!会有更简单的方法吗?

谢谢大家! - 汤姆

0 个答案:

没有答案