GWT-Hashmap响应为空?

GWT-Hashmap响应为空?,gwt,Gwt,我有一个自定义模型,它在内部使用HashMap来存储数据 public class SearchScreenConfigModel extends DefaultDataModel implements Serializable{ private static final long serialVersionUID = 1L; private ArrayList<DefaultGridColumnModel> defaultGridColumnModels; private En

我有一个自定义模型,它在内部使用
HashMap
来存储数据

public class SearchScreenConfigModel extends DefaultDataModel implements Serializable{

private static final long serialVersionUID = 1L;

private ArrayList<DefaultGridColumnModel> defaultGridColumnModels;
private EntityTblModel entityTblModel;
private DefaultGridColumnModel defaultGridColumnModel;

public List<DefaultGridColumnModel> getDefaultGridColumnModels() {
    return get("defaultGridColumnModels");
}

public void setDefaultGridColumnModels(List<DefaultGridColumnModel> defaultGridColumnModels) {
    set("defaultGridColumnModels", defaultGridColumnModels);
}

public String getScreenName() {
    return get("screenName");
}

public void setScreenName(String value) {
    set("screenName", value);
}

public String getIcon() {
    return get("icon");
}

public void setIcon(String icon) {
    set("icon", icon);
}

public void setEntityTbl(EntityTblModel entityTbl) {
    set("entityTbl", entityTbl);
}

public EntityTblModel getEntityTbl() {
    return get("entityTbl");
}
公共类SearchScreenConfigModel扩展DefaultDataModel实现可序列化{
私有静态最终长serialVersionUID=1L;
私有ArrayList defaultGridColumnModels;
私人实体TBL模型实体TBL模型;
私有DefaultGridColumnModel DefaultGridColumnModel;
公共列表getDefaultGridColumnModels(){
返回get(“defaultGridColumnModels”);
}
public void setDefaultGridColumnModels(列出defaultGridColumnModels){
设置(“defaultGridColumnModels”,defaultGridColumnModels);
}
公共字符串getScreenName(){
返回获取(“屏幕名称”);
}
公共void设置屏幕名称(字符串值){
设置(“屏幕名称”,值);
}
公共字符串getIcon(){
返回获取(“图标”);
}
公共无效设置图标(字符串图标){
设置(“图标”,图标);
}
公共无效设置entityTbl(entityTbl模型entityTbl){
集合(“entityTbl”,entityTbl);
}
public entitytbl模型getEntityTbl(){
return get(“entityTbl”);
}
}

公共类DefaultDataModel实现DataModel,可序列化{ 私有静态最终长serialVersionUID=1L; 私有哈希映射; 受保护的布尔AllowentsTedValues; 公共DefaultDataModel(){ } 公共DefaultDataModel(映射属性){ 超级(); 设置属性(属性); } @抑制警告(“未选中”) @凌驾 公共X获取(字符串属性){ if(map==null) 返回null; return(X)map.get(property); } @凌驾 公共映射getProperties(){ if(map!=null) 返回图; 返回新的HashMap(); } @凌驾 公共集合getPropertyNames(){ Set=newhashset(); if(map!=null) set.addAll(map.keySet()); 返回集; } @抑制警告(“未选中”) @凌驾 公共X删除(字符串属性){ if(map==null) 返回null; 返回(X)映射。删除(属性); } @抑制警告(“未选中”) @凌驾 公共X集(字符串属性,X值){ if(map==null) map=新的HashMap(); return(X)map.put(属性、值); } 公共void集合属性(映射属性){ for(字符串属性:properties.keySet()) set(property,properties.get(property)); } }

我从服务器端设置数据(原语和用户定义的对象-可序列化)并发送回客户端

在从服务器返回之前,映射具有数据

public class SearchScreenConfigModel extends DefaultDataModel implements Serializable{

private static final long serialVersionUID = 1L;

private ArrayList<DefaultGridColumnModel> defaultGridColumnModels;
private EntityTblModel entityTblModel;
private DefaultGridColumnModel defaultGridColumnModel;

public List<DefaultGridColumnModel> getDefaultGridColumnModels() {
    return get("defaultGridColumnModels");
}

public void setDefaultGridColumnModels(List<DefaultGridColumnModel> defaultGridColumnModels) {
    set("defaultGridColumnModels", defaultGridColumnModels);
}

public String getScreenName() {
    return get("screenName");
}

public void setScreenName(String value) {
    set("screenName", value);
}

public String getIcon() {
    return get("icon");
}

public void setIcon(String icon) {
    set("icon", icon);
}

public void setEntityTbl(EntityTblModel entityTbl) {
    set("entityTbl", entityTbl);
}

public EntityTblModel getEntityTbl() {
    return get("entityTbl");
}
一旦在客户端接收到模型,hashmap就为null


任何人请帮帮我。

你不能使用
对象。这可能解释了为什么您无法在客户机中获取数据。您需要将其重写为所有子类型都可以序列化的类型。这也是对象的问题。GWT为可序列化对象的所有子类型生成代码,因为在编译时它不知道在运行时使用哪个子类型。对于对象,这将意味着基本上所有类,这将意味着生成的代码的巨大开销,这些代码可能永远不会被使用。

如果没有实际的代码片段,很难判断。