and*_*Guy 24 java string object
我正在使用toString()方法将类对象存储到字符串中.现在,我想将字符串转换为该类对象.
怎么做?请帮我一下源代码.
Ste*_*n C 27
我使用toString()方法将类对象存储到字符串中.现在,我想将字符串转换为该类对象.
你的问题很模糊.它可能意味着至少两件不同的事情,其中之一就是......嗯......你这是一个严重的误解.
如果你这样做:
SomeClass object = ...
String s = object.toString();
Run Code Online (Sandbox Code Playgroud)
那么答案就是没有简单的方法可以s转回一个实例SomeClass.即使该toString()方法给你一个时髦的"SomeClass @ xxxxxxxx"字符串,你也无法做到.(该字符串不编码对象的状态,甚至不编码对象的引用.xxxxxxxx部分是对象的标识哈希码.它不是唯一的,不能神奇地转回到对象的引用.)
将输出的输出toString转换为对象的唯一方法是:
SomeClass.toString()方法进行编码,以便在其生成的String中包含对象的所有相关状态,以及toString()方法生成的格式显式解析String的构造函数或工厂方法.这可能是一个糟糕的方法.当然,要为非平凡的课程做这件事需要做很多工作.
如果你做了这样的事情:
SomeClass object = ...
Class c = object.getClass();
String cn = c.toString();
Run Code Online (Sandbox Code Playgroud)
然后你可以得到相同的Class对象(即所在的对象c),如下所示:
Class c2 = Class.forName(cn);
Run Code Online (Sandbox Code Playgroud)
这给了你Class但没有神奇的方法来重建使用它的原始实例.(显然,类的名称不包含对象的状态.)
如果您正在寻找一种序列化/反序列化任意对象的方法而不需要自己编写unparse/parse方法,那么您根本就不应该使用toString()方法.以下是您可以使用的一些替代方案:
这些方法中的每一种都有优点和缺点......我不会在这里讨论.
小智 18
更简单的方法:您需要com.google.gson.Gson将对象转换为json字符串以进行流式处理
将对象转换为json字符串,以便在代码下方使用流
Gson gson = new Gson();
String jsonString = gson.toJson(MyObject);
Run Code Online (Sandbox Code Playgroud)
要将json字符串转换回对象,请使用以下代码:
Gson gson = new Gson();
MyObject = gson.fromJson(decodedString , MyObjectClass.class);
Run Code Online (Sandbox Code Playgroud)
在另一方面转换对象以进行流式传输和读取的更容易的方法.希望这可以帮助. - 维施什
Class.forName(nameString).newInstance();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
153660 次 |
| 最近记录: |