【发布时间】:2018-09-08 13:03:48
【问题描述】:
我构建了一个包含一些这样的对象:
public class TestThis implements Listener{
private EventsManager eventsManager;
private ConfigManager configManager;
public TestThis() {
eventsManager = new EventsManager();
eventsManager.addListener(this);
configManager = new ConfigManager(this);
}
public ConfigManager getConfigManager() {
return configManager;
}
@Override
public void configLoadedSuccessfully(Event event) {
System.out.println(this.configManager); //OUTPUT NULL
System.out.println(this.getConfigManager());//OUTPUT NULL
}
}
configManager 对象存在问题。
在构造中,一切正常,但 configLoadedSuccessfully 事件 configManager 为 null 并且它的 null evrywhere。
监听器代码:
public interface Listener{
public void configLoadedSuccessfully(Event event);
}
【问题讨论】:
-
您的大写已关闭,不是
this.ConfigManager,而是this.configManager。不确定这是否是问题,但我知道这很重要。 -
@HovercraftFullOfEels 这也是个问题,但没有解决。
-
能否展示调用代码和监听接口?
-
我怀疑
eventsManager.addListener(this);调用的代码最终会在参数上调用configLoadedSuccessfully(在本例中为this)。然后将解释 null,因为configManager仅在此调用之后分配。所以你可能需要在构造函数中交换最后两个语句的顺序 -
@Razdom 如果这是问题所在,那么您需要重新设计代码以消除循环依赖。
标签: java object events null listener