Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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
Java GWT异步回调上的Hashmap为空_Java_Gwt - Fatal编程技术网

Java GWT异步回调上的Hashmap为空

Java GWT异步回调上的Hashmap为空,java,gwt,Java,Gwt,在服务器端,我构造了一个java.util.Hashmap,用值(键和值都是字符串)填充它,并通过异步回调将其传递回客户端。当它返回到客户端时,它是空的 我可以用一个只在一个地方服务器端使用的新hashmap来复制它。Java6和GWT2.7 服务器端服务: public class Service extends RemoteServiceServlet implements IService { public Model buildModel() { Model mode

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

我可以用一个只在一个地方服务器端使用的新hashmap来复制它。Java6和GWT2.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); {
}
型号:

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); {
}
公共类模型实现可序列化{
私有映射myMap=newhashmap();
公共void addItemyMap(字符串键、字符串值){
if(key!=null){
myMap.put(键、值);
}
}
公共地图getMyMap(){
返回myMap;
}
}
异步接口:

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); {
}
公共接口IServiceAsync{
公共void构建模型(异步回调){
}
客户端:

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

} 
service.buildModel(新的AsyncCallback(){
成功时的公共无效(模型){
logger.warning(model.getMyMap().size());
}
失败时的公共无效(可丢弃){
记录器。警告(“错误!”);
}
} 

问题已解决。Eclipse保存操作使映射成为最终映射,从而阻止序列化。当我删除最终修改器(并阻止Eclipse将其重新添加)时,我能够在客户端查看映射的内容。

问题已解决。Eclipse保存操作使映射成为最终映射,从而阻止序列化。当我删除最终修改器(并阻止Eclipse将其重新添加)时,我可以在客户端看到地图的内容。

我不是100%了解这一点,但我非常确定您的
模型
需要实现
可序列化
接口。我的缺点是,我忘记了包含它。其他原语和字符串属性都很好。您的意思是
模型
类应该实现
接口Serializable
接口,是吗?GWT支持Serializable。我不是100%支持它,但我很确定您的
模型
需要实现
Serializable
接口。我的错,是这样的,我只是忘了包括它。其他原语和字符串属性都可以。您的意思是
模型
类应该实现
IsSerializable
接口,是吗?GWT支持Serializable。