2014-12-04 53 views
0

在我的應用我有有它獲取每次更新新的事件是在一個變量的類:到方法的獨佔訪問/場

class Logger{ 

    private String mVariable =""; 

    public void onEvent(Event e) { 
    //update mVariable here 
    } 

    public void log() { 
    //write mVariable to file 
    } 
} 

現在,我有希望觸發Logger類其他類將當前值寫入文件。

class Trigger{ 

    //this is another event, not the event for which Logger is waiting for 
    public void onEvent(Event e) { 
     mLogger.log(); 
    } 
} 

我怎樣才能確保Trigger類必須的,只要它想mVariable價值獨佔訪問?即當Trigger類別調用log方法時,mVariable的值不應被Logger類別覆蓋。

+0

你的意思mLogger.log();會觸發onEvent(Event e)? – javaHunter 2014-12-04 09:13:02

+0

否,'Logger'的'onEvent'方法和''Trigger''的'onEvent'方法完全不相關。他們從事件總線中被調用。 – Moonlit 2014-12-04 09:15:22

+0

https://docs.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html – vels4j 2014-12-04 09:28:37

回答

0

使這兩種方法​​然後調用鎖()將鎖定訪問的onEvent()