我有一个Singleton实例,当我正在解雇其处理程序使用Singleton实例的事件时,它会导致Umbrella Exception。 代码片段是
@UiHandler("panelButton")
void handleClick(ClickEvent e) {
AppUtils.eventBus.addHandler(PanelClickEvent.TYPE, new PanelClickEventHandler());
AppUtils.eventBus.fireEvent(new PanelClickEvent());
}
处理程序
public class PanelClickEventHandler implements EventHandler{
@Inject
PanelDataHandler pdh;
public void displayPanelGrid() {
System.out.print(pdh.getPanelList().size());
}
}
错误在于
行@Inject
PanelDataHandler pdh;
我的PanelDataHandler是
@Singleton
public class PanelDataHandler {
.......
@Inject
public PanelDataHandler(){
....
}
.......
}
我遗失了什么吗? 我不能在我的处理程序中使用@singleton对象吗?
答案 0 :(得分:0)
PanelClickEventHandler
创建 new PanelClickEventHandler
,则不会注入。只有当GIN(或者你用于依赖注入的任何东西)创建实例,或者你之后明确注入其成员时,它才会出现。