600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > java将字符串转成对象_java – 将字符串转换为类对象

java将字符串转成对象_java – 将字符串转换为类对象

时间:2023-05-14 02:35:51

相关推荐

java将字符串转成对象_java – 将字符串转换为类对象

I am storing a class object into a string using toString() method. Now, I want to convert the string into that class object.

你的问题很模糊.这可能意味着至少两件不同的事情,其中​​之一是…好的…你的一个严重的误解.

如果你这样做:

SomeClass object = ...

String s = object.toString();

那么答案是没有简单的方法把它转换成SomeClass的一个实例.即使toString()方法给你一个那些时髦的“SomeClass @ xxxxxxxx”字符串,你也无法做到这一点. (该字符串不对对象的状态进行编码,甚至不对对象的引用进行编码,xxxxxxxx部分是对象的身份哈希码,它不是唯一的,不能神奇地转回到对象的引用.)

唯一可以将toString的输出转换成对象的方式是:

>编写SomeClass.toString()方法,以便包含在其生成的String中的对象的所有相关状态,以及

>编写一个构造函数或工厂方法,它以由toString()方法生成的格式显式解析String.

这可能是一个坏的方法.当然,对于非平凡的课程来说,这是很多工作.

如果你这样做:

SomeClass object = ...

Class c = object.getClass();

String cn = c.toString();

那么你可以得到相同的Class对象(即c中的那个),如下所示:

Class c2 = Class.forName(cn);

这给了你Class,但是没有什么神奇的方式来重构原来的实例. (显然,类的名称不包含对象的状态.)

如果您正在寻找一种方法来序列化/反序列化任意对象,而无需自己编写解析/解析方法,那么您根本不应该使用toString()方法.以下是您可以使用的一些备选方案:

> Java对象序列化API,如@ Nishant答案中的链接中所述.

> @ fatnjazzy的回答中描述的JSON序列化.

> XStream的XML序列化库.

>一个ORM映射.

这些方法中的每一种都有优缺点,我不会进入这里.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。