如何在对它执行.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()仅用于loggingdebug目的。 它不用于serializing state of an Objectstate of an Object

如果有问题的对象支持serialization那么请使用serializationdeserialization 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的每个参数来创建一个与原始对象具有相同值的新对象。 为此,您必须确保在返回的字符串中获取对象的所有参数。

总的来说,一个非常坏的主意。