所以我想通过一个小项目。我似乎遇到的一个问题是: 我有一个A类,它包含一个C类实例和一个B类实例列表。 每个类都包含一个计时器。当该计时器触发事件时,我需要执行C类方法。
public class A
{
C C1 = new C(this);
public ArrayList<B> B1= new ArrayList<>();
}
所以当计时器到期时我需要点火:
C1.method()
答案 0 :(得分:0)
非常基本/简单的方法:实现一个简单的订阅/发布框架。
对于eaxmple:
public interface BlammyHoot
{
void hoot(); // this is the call back.
}
public class C implements BlammyHoot
{
public void hoot()
{
// implement the callbe method here.
}
}
public class B
{
private List<BlammyHoot> hootList = new LinkedList<BlammyHoot>();
public void registerBlammyHoot(final BlammyHoot theHoot)
{
if (theHoot != null)
{
hootList.add(theHoot);
}
}
public void respondToTimerTimeout()
{
for (BlammyHoot hootElement : hootList)
{
hootElement.hoot();
}
}
}
警告:对obove java代码执行零测试(包括但不限于,我没有编译它)。