当前位置: 首页 > 知识库问答 >
问题:

无法在Java中反序列化MultiValuedHashMap

宋高谊
2023-03-14

我试图反序列化javax.ws.rs.core.MultiValuedHashMap。

MultivaluedHashMap实现java.io.Serializable,并且有一个公共的、没有arg构造函数。

package test;

import org.apache.commons.lang3.SerializationUtils;
import javax.ws.rs.core.MultivaluedHashMap;

public class Test {
    public static void main(String[] args) throws Exception {

        MultivaluedHashMap<String, String> map = new MultivaluedHashMap<String, String>();
        byte[] serializedMap = SerializationUtils.serialize(map);

        MultivaluedHashMap<String, String> deserializedMap = SerializationUtils.deserialize(serializedMap);
    }
}

提前感谢你的帮助。

共有1个答案

房学
2023-03-14

发生这种情况是因为MultivaluedHashMap没有实现Serializable。要解决此问题,请执行以下操作:

import java.io.Serializable;

import javax.ws.rs.core.MultivaluedHashMap;

public class MyMultivaluedHashMap<K, V> extends MultivaluedHashMap<K, V> implements Serializable{
	private static final long	serialVersionUID	= 1L;
	public MyMultivaluedHashMap(){
		super();
		//there are other contruc super class
	}
}

//your code
import javax.ws.rs.core.MultivaluedHashMap;

import org.apache.commons.lang3.SerializationUtils;

public class Teste{
    public Teste(){}
    public static void main(String[] args) throws Exception{
        MyMultivaluedHashMap<String, String> map = new MyMultivaluedHashMap<String, String>();
        map.addFirst("key-1", "chubby");
        map.add("key-2", "skinny");
        byte[] serializedMap = SerializationUtils.serialize(map);
        System.out.println(serializedMap);
        MultivaluedHashMap<String, String> deserializedMap = SerializationUtils.deserialize(serializedMap);
        System.out.println(deserializedMap);
    }
}
 类似资料:
  • 问题内容: 我试图序列化和反序列化内部对象的数组列表: HairList对象也是一个可序列化的对象。 此代码执行返回以下错误: 排队 我不知道我在做什么错。你能给个小费吗? 更新: 解决: 仅使用HairBirt的本机数组而不是ArrayList即可工作: 代替 感谢大家的帮助。 问题答案: 不要使用-而是使用二进制数据并对它进行base64编码,以将其转换为字符串而不会丢失信息。 我强烈怀疑这是

  • 我从 REST API 获得以下 JSON 作为响应。 并尝试使用下面的代码进行解析,但这不会导致正确的反序列化类型。 下面是我在JSON响应中收到的字段的类。 缺少了什么?

  • 问题内容: 我已经开始在我的第一个android应用程序上进行工作,并且具有处理多层图像的应用程序。我能够将项目文件的平面版本导出为PNG,但我希望能够保存分层图像以供以后编辑(包括应用于某些层的任何选项,例如基于文本的层)。 无论如何,我已经确保需要写入文件的类是“可序列化的”,但是由于android.graphics.Bitmap不可序列化这一事实而遇到了一些障碍。以下代码实质上将位图作为PN

  • 问题内容: 作为一个小项目,我一直在尝试做一个小事,它可以读取序列化的lambda(从本地或从FTP)并调用它们的运行函数作为测试的一部分,以测试Windows中的文件关联(即打开某些文件类型)使用特定程序打开它们),但不管如何,无论如何,它似乎从未正确地反序列化。 lambda被这样声明 并使用由ObjectOutputStream包装的[n可选] BufferedOutputStream包装的

  • 问题内容: 在hibernate状态下执行条件查询时,出现以下异常: 可能是什么问题呢? PS:虽然可能不相关,但我的hibernate版本是hibernate-4.0.1 final。 问题答案: 问题在于被引用的实体对实体有另一个引用,并且该关系未由任何-like注释进行注释。

  • 问题内容: 我正在使用Hibernate的两个表,但我不明白为什么对于特定查询我有此问题。我希望有人意识到这个问题。 我有一个桌子用户 和一个桌子区域 日志说: 问题答案: 我建议仅在字段或getter上设置注释。我更喜欢田野,但那只是我的口味。 请参阅Hibernate中有关字段和属性访问的奇怪案例: 因此,要么将注释仅放置在字段上,要么仅放置在getters(properties)上。混合它们