`
public class Main {
static int i = 0;
static int iAdd = i+1;
public static void main(String[] args) throws Exception {
// 用執行緒檢測
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
// 臨時保存值
int save = i;
while(true) {
if( i != save) {
//獲取新值
save = i;
// 處理
iAdd = i+1;
System.out.format("i 被改了 : i=%d , next=%d,",i,iAdd);
} else {}
try {
//休息??
Thread.sleep(1000);
} catch (InterruptedException e) {e.printStackTrace();}
}
}
});
thread.start();
System.out.println("原始:" + i);
while(true) {
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
//改變值
i = input;
}
}
}
`
這個是比較笨的方法
利用執行緒每一秒就檢查變數是否改變,
非常不建議在實際開發中使用(應使用其他成熟的框架)
推薦使用java.bean.PropertyChangeSupport
構造方法:PropertyChangeSupport changes = new PropertyChangeSupport(aclass);
使用匿名內部類來實作監聽器,在propertyChange方法中實作你要的處理,該方法會在firePropertyChange觸發了事件之后捕獲該事件然后執行,也可以通過implements PropertyChangeListener介面實作,
當bean的屬性發生變化時,使用PropertyChangeSupport物件的firePropertyChange方法,它會將一個事件發送給所有已經注冊的監聽器,該方法有三個引數:屬性的名字、舊的值以及新的值,屬性的值必須是物件,如果是簡單資料型別,則必須進行包裝,
參考
- 參考時間:2014-05-15 16:21:04
本文來自博客園,作者:DanicaStarrr,轉載請注明原文鏈接:https://www.cnblogs.com/hazjblog/p/checkerforvar.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/442768.html
標籤:Java
下一篇:Java案例——學生管理系統
