如何在对它执行.toString()之后取回对象?

时间:2014-09-12 06:13:14

标签: java

我有一个类 Data.java

public class Data{
   private String name;
   private String age;
   // getters and setters for the above fields
 }

在我执行的一个方法中

  String newData = getData().toString();

但现在我希望数据对象恢复其状态而不是字符串对象。所以如何在java中执行此操作。

4 个答案:

答案 0 :(得分:2)

如果 getData()在返回对象之前返回该对象。

答案 1 :(得分:1)

不,你不能。

toString()仅适用于loggingdebug目的。它不适用于serializing state of an Object

如果相关对象支持serialization,请与serializationdeserialization一起了解如何执行此操作。

答案 2 :(得分:1)

你不能这样做。

有效的是

String newData = getData().toString();

您无法从Object

获取toString()

您可以使用Serialization。但那不是你要问的问题。

你也可以像以下一样聪明。使用JSon

@Override
public String toString() {
   return new Gson().toJson(this);
}

现在你可以回来了

String str=myClass.toString();
MyClass myClass=new Gson().fromJson(str,MyClass.class);

答案 3 :(得分:0)

您无法获得相同的对象。但是你可以做的是,你可以通过删除返回的String的每个参数来创建一个与原始对象具有相同值的新对象。为此,您必须确保在返回的字符串中获取对象的所有参数。

总的来说,这是一个非常糟糕的主意。