Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
@gwt使用中的单例_Gwt_Singleton - Fatal编程技术网

@gwt使用中的单例

@gwt使用中的单例,gwt,singleton,Gwt,Singleton,我有一个对象PanelDataHandler,它类似于 @Singleton 公共类PanelDataHandler{ 私人名单详细信息; 私有整数nextId; @注入 公共PanelDataHandler(){ panelDetails=新的ArrayList(); nextId=0; } ... } 现在,在我的代码中有两个具有不同处理程序的按钮。on按钮用于保存已保存面板的详细信息,另一个按钮用于显示已输入面板的列表。 我已经浏览了很多帖子,但这个问题无法找到解决方案。 我想

我有一个对象PanelDataHandler,它类似于

@Singleton
公共类PanelDataHandler{
私人名单详细信息;
私有整数nextId;
@注入
公共PanelDataHandler(){
panelDetails=新的ArrayList();
nextId=0;
}     
...
}
现在,在我的代码中有两个具有不同处理程序的按钮。on按钮用于保存已保存面板的详细信息,另一个按钮用于显示已输入面板的列表。
我已经浏览了很多帖子,但这个问题无法找到解决方案。
我想创建一个
PanelDataHandler pdh
的实例,并在一个处理程序中将面板添加到该实例中,然后在另一个处理程序中获取添加的面板列表

公共类PanelSaveEventHandler实现EventHandler{
public void savePanelsList(){
pdh.addPanels();
}
}
获取列表

公共类面板ClickEventHandler实现EventHandler{
public void displayPanelGrid(){
MyPagingDataGrid=新建MyPagingDataGrid();
网格设置高度(“500px”);
setDataList(pdh.getPanelList());
RootPanel.get().add(网格);
}
}
我的Ginject接口

@GinModules({ DispatchAsyncModule.class, ClientModule.class })
public interface ClientGinjector extends Ginjector {
...
...

    AsyncProvider<PanelDataHandler> getPanelDataHandler();
}
我可以在何处以及如何为
PanelDataHandler
创建实例,以便如上所述使用它


提前感谢您的回答

终于为我的问题找到了解决方案,感谢您的宝贵建议
对于使用单例对象,必须将其注入,即

@注入
PanelDataHandler-pdh

事实并非如此


PanelDataHandler pdh=新的PanelDataHandler()

终于解决了我的问题,谢谢你的宝贵建议
对于使用单例对象,必须将其注入,即

@注入
PanelDataHandler-pdh

事实并非如此


PanelDataHandler pdh=新的PanelDataHandler()

你在使用
GWTP
?我不明白这个问题。如果你使用一个GinInjector并将PanelDataHandler作为Singleton使用,那么如果你在代码中需要它们的地方@Injection它们,你应该总是得到相同的pdh实例。我不明白答案,如何在需要的地方@Injection。你的意思是当我为PanelDataHandler创建实例时,它将指向同一个pdh吗。我已经添加了Ginjector和EntryPoint的代码以获取详细信息您是否使用了
GWTP
?我不理解这个问题。如果您使用一个GinInjector并使用PanelDataHandler作为Singleton,那么如果您在代码中需要它们的地方@Injector它们,您应该始终获得相同的pdh实例。我不理解答案,如何在我需要的地方注射。你的意思是当我为PanelDataHandler创建实例时,它将指向同一个pdh吗。我添加了Ginjector和EntryPoint的代码以了解详细信息
public class PanelEstimator implements EntryPoint {

    private final ClientGinjector ginjector = GWT.create(ClientGinjector.class);
    @Override
    public void onModuleLoad() {
        // This is required for Gwt-Platform proxy's generator
        DelayedBindRegistry.bind(ginjector);    
        ginjector.getPlaceManager().revealCurrentPlace();
        System.out.println(ginjector.getPanelDataHandler());
    }

}