如何在对它执行.toString()之后取回对象?
我有一个类Data.java
public class Data{ private String name; private String age; // getters and setters for the above fields }
在我执行的一个方法中
String newData = getData().toString();
但现在我希望Data对象返回其状态而不是字符串对象。 所以如何在java中执行此操作。
如果getData()在返回对象之前返回该对象。
你不能。
toString()
仅用于logging
和debug
目的。 它不用于serializing
state of an Object
的state of an Object
。
如果有问题的对象支持serialization
那么请使用serialization
和deserialization
serialization
来了解如何执行此操作。
你不能这样做。
有效的是
String newData = getData().toString();
你无法从toString()
返回Object
您可以使用序列化 。 但这不是你要问的问题。
你也可以聪明如下。 使用JSon
。
@Override public String toString() { return new Gson().toJson(this); }
现在你可以回来了
String str=myClass.toString(); MyClass myClass=new Gson().fromJson(str,MyClass.class);
你不能得到同样的对象。 但是你可以做的是,你可以通过删除返回的String的每个参数来创建一个与原始对象具有相同值的新对象。 为此,您必须确保在返回的字符串中获取对象的所有参数。
总的来说,一个非常坏的主意。