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.getEnprer().enpreToString(baos.toByteArray());}将字符串反序列化为对象
private static Object deserialize(String s) throws IOException, ClassNotFoundException { byte[] data = base64.getDeprer().depre(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);


