将字符串转换为类对象 [已关闭]
我正在使用方法将类对象存储到字符串中。现在,我想将字符串转换为该类对象。toString()
如何做到这一点?请帮我提供源代码。
我正在使用方法将类对象存储到字符串中。现在,我想将字符串转换为该类对象。toString()
如何做到这一点?请帮我提供源代码。
我正在使用toString()方法将类对象存储到字符串中。现在,我想将字符串转换为该类对象。
你的问题模棱两可。它可能意味着至少两件不同的事情,其中之一是...井。。。你是一个严重的误解。
如果您这样做:
SomeClass object = ...
String s = object.toString();
那么答案是,没有简单的方法可以变回 .即使该方法为您提供了一个时髦的“SomeClass@xxxxxxxx”字符串,您也无法做到这一点。(该字符串不编码对象的状态,甚至不对对象的引用进行编码。xxxxxxxx 部分是对象的标识哈希码。它不是唯一的,并且不能神奇地变回对对象的引用。s
SomeClass
toString()
将 的输出转换回对象的唯一方法是:toString
SomeClass.toString()
toString()
这可能是一个不好的方法。当然,对于非平凡的类来说,这样做需要做很多工作。
如果你做了这样的事情:
SomeClass object = ...
Class c = object.getClass();
String cn = c.toString();
然后,您可以取回相同的对象(即 中的对象),如下所示:Class
c
Class c2 = Class.forName(cn);
这为您提供了使用它来重建原始实例的神奇方法。(显然,类的名称不包含对象的状态。Class
如果您正在寻找一种序列化/反序列化任意对象的方法,而无需自己编写未解析/解析方法的编码,那么您根本不应该使用方法。以下是您可以使用的一些替代方法:toString()
这些方法中的每一种都有优点和缺点...我不会在这里讨论。
更简单的方法:您将需要com.google.gson.Gson将对象转换为json字符串以进行流式传输
将对象转换为 json 字符串以进行流式处理,请在以下代码中使用
Gson gson = new Gson();
String jsonString = gson.toJson(MyObject);
要将 json 字符串转换回对象,请使用以下代码:
Gson gson = new Gson();
MyObject = gson.fromJson(decodedString , MyObjectClass.class);
转换对象以进行流式传输并在另一侧读取的更简单的方法。希望这有帮助。- 维什什