java map tostring_将HashMap.toString()转换回Java中的HashMap

小编典典

toString()这种方法依赖于的实现,toString()并且在大多数情况下可能是有损的。

这里不可能有无损解决方案。但更好的方法是使用对象序列化

将对象序列化为字符串

private static String serialize(Serializable o) throws IOException {

ByteArrayOutputStream baos = new ByteArrayOutputStream();

ObjectOutputStream oos = new ObjectOutputStream(baos);

oos.writeObject(o);

oos.close();

return Base64.getEncoder().encodeToString(baos.toByteArray());

}

将字符串反序列化为对象

private static Object deserialize(String s) throws IOException,

ClassNotFoundException {

byte[] data = Base64.getDecoder().decode(s);

ObjectInputStream ois = new ObjectInputStream(

new ByteArrayInputStream(data));

Object o = ois.readObject();

ois.close();

return o;

}

在此,如果用户对象具有临时字段,则它们将在过程中丢失。

旧答案

一旦使用toString()将HashMap转换为String;不是您可以将其从该String转换回Hashmap,而只是将其转换为String表示形式。

您可以将对HashMap的引用传递给method,也可以对其进行序列化

这是toString()的描述toString()

这是带有序列化说明的示例代码。

并将hashMap作为arg传递给方法。

public void sayHello(Map m){

}

//calling block

Map hm = new HashMap();

sayHello(hm);

2020-10-20

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值