我正在尝试编写一个程序,以便在程序运行过程中不断检查变量的变化。这是否需要线程中的无限循环?检测变量变化
Q
检测变量变化
0
A
回答
0
使用包装类你喜欢的变量:
class VarWrapper{
private Object myVar;
public Object getMyVar() {
return myVar;
}
public void setMyVar(Object myVar) {
//[1],Here you'll know myVar changed
this.myVar = myVar;
}
}
1
还有比定期轮询变量的值更好的选择。轮询可能会错过变化的变化,即使没有发生任何事情,它也需要计算资源。
你可以将这个变量包装在一个包装类中,并且只能通过一个setter来改变它。
如果您使用的是Eclipse,您可以要求调试器在值更改时停止。
0
Class Test{
private int var;
public void setVariable(int var){
this.var = var;
varChangedCallBack();
}
public void varChangedCallBack(){
//Do something on var changed
}
}
由于变量是私有以上,它是可以改变的只有THR” setter.After改变我们给调用回调方法,在其中你可以做任何你喜欢的变量变化做。
0
如果你有一个专用的线程来检查变量状态,那么它应该通过在对象上使用sync-notify唤醒这个等待线程来完成。等待的线程将同步等待该对象。
如果你没有专门的线程,那么这个观察者模式。 http://en.wikipedia.org/wiki/Observer_pattern
相关问题
- 1. android - 检测流量变化
- 2. phonegap:检测音量变化
- 3. 变量变化的实时检测
- 4. 检测变化的变量R
- 5. 变量变化检测动作3.0
- 6. PHP如何检测变量的变化?
- 7. 检测python变量值的变化
- 8. Java如何检测变量变化
- 9. 如何检测变量的变化?
- 10. 检测环境变量的变化
- 11. Python检测变化(全局)变量
- 12. 检测变化
- 13. C++变量变化监测
- 14. 检测URL变化
- 15. 替代改变听众对变量的值检测变化
- 16. 如何检测Sonos音量变化
- 17. 检测矢量中的变化
- 18. jQuery的检测变化
- 19. 检测html textarea的变化
- 20. 小位置变化检测
- 21. 检测库存变化
- 22. 检测UIPageControl页面变化
- 23. c#检测目录变化
- 24. jQuery检测窗体变化
- 25. 检测ReactJS页面变化
- 26. Angular 2 TranslateService检测变化
- 27. 检测img src变化
- 28. 检测到UISwitch的变化
- 29. 检测的URL变化
- 30. Python场景变化检测
这真的取决于你为什么需要追踪变量。如果它只是一个最重要的修改操作,那么提供一个setter方法(如The1提出的方法)可能很好。如果问题涉及多个线程(即使是一个简单的检查器线程),那么您立即就会有一整套新的问题需要考虑。 – andi5 2013-04-06 15:20:45