我将在这里谈论纯粹的概念。
我有一个附加了监听器的类,它有 某些东西 。 我有一整套从该类构造的对象
我还有一个静态方法foo()
可以访问该数组,然后 其他 。
执行 其他内容 会触发听众,如果我不暂停 其他 ,直到 某事 已完成,代码无效。 foo()
知道何时触发了侦听器。
此外,侦听器还能够直接调用由同一个类构造的另一个对象上的侦听器。 foo()
无法知道是否会发生这种情况,或多少次。
那么我怎么能强制foo()
等待监听器执行,然后,如果监听器没有触发连锁反应,继续它停止的地方,或者等待任何触发的监听器完成执行?
答案 0 :(得分:1)
由于这是概念性的,并且很难确定答案,因此我建议您阅读Locks
和Conditions
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/Condition.html。这些可能会提供您正在寻找的能力。
答案 1 :(得分:0)
您可以考虑使用其他侦听器:
foo()
可以将PropertyChangeListener添加到“侦听器”正在更改状态的任何位置,让我们称之为模型。