我有A,B和C这三个类。A侦听B的更改,B侦听C。如果C被更改,它将在其侦听器B上调用notifyChange(),其侦听方法如下所示:
clientComp.setChangeListener(new NavigationClientCompositeListener() {
@Override
public void notifyChange() {
notifyChange();
}
});
B只是想将此通知传递给A,这就是我的问题。 notifyChange()方法内部的notifyChange()调用将导致无限循环。有没有办法在此接口实现内引用B类的notifyChange()方法?还是从一开始就是不好的设计?
我怎样才能最好地解决这个问题?我当然可以更改B的方法的名称,但是如果我有很多这样的嵌套类,那将使它变得很荒唐,而这并不是我所追求的解决方案。
最佳答案
使用<class-name>.this
可帮助您引用外部类的当前实例
clientComp.setChangeListener(new NavigationClientCompositeListener() {
@Override
public void notifyChange() {
B.this.notifyChange(); //Calls the notifyChange() of B, which is the outer class
}
});