0

我有一个单例实例,当我触发其处理程序使用单例实例的事件时,它会导致 Umbrella 异常。代码片段是

@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 对象吗?

4

1 回答 1

0

PanelClickEventHandler如果您使用new PanelClickEventHandler. 仅当 GIN(或您用于依赖注入的任何东西)创建实例,或者您之后显式注入其成员时才会如此。

于 2013-09-06T08:58:56.277 回答