GWT 异步回调中的 Hashmap 为空

Hashmap is empty on GWT async callback

服务器端,我构造一个java.util.Hashmap,用值填充它(键和值都是字符串)并通过异步回调将它传回客户端。返回客户端时为空

我可以使用仅在服务器端一个地方使用的全新哈希图来复制它。 Java6 和 GWT 2.7

服务器端服务:

public class Service extends RemoteServiceServlet implements IService {

    public Model buildModel() {
     Model model = new Model();
     model.addItemToMyMap("key", "value");
     return model;
    }
}

型号:

 public class Model implements Serializable {

            private Map<String, String> myMap = new HashMap<String, String>();

            public void addItemToMyMap(String key, String value) {
              if(key != null) {
                 myMap.put(key, value);
             }
            }
            public Map<String, String> getMyMap() {
                return myMap;
            }
       }

异步接口:

public interface IServiceAsync {

 public void buildModel(AsyncCallback<Model> callback); {
}

客户端:

    service.buildModel(new AsyncCallback<Model>() {
       public void onSuccess(Model model) {
        logger.warning(model.getMyMap().size());
    }
      public void onFailure(Throwable caught) {
       logger.warning("ERROR!");
    }

} 

问题已解决。 Eclipse 保存操作使地图最终化,从而阻止了序列化。当我删除 final 修饰符(并阻止 Eclipse 将其添加回来)时,我能够在客户端看到地图的内容。