Java 新的Gson().toJson(对象)为singleton类返回null
我的要求:我想将单例对象转换为字符串,再将字符串转换为对象 因此,我使用Gson使用toJson()方法将对象转换为字符串,使用fromJson()将字符串转换为对象 我有两门课:Java 新的Gson().toJson(对象)为singleton类返回null,java,singleton,gson,Java,Singleton,Gson,我的要求:我想将单例对象转换为字符串,再将字符串转换为对象 因此,我使用Gson使用toJson()方法将对象转换为字符串,使用fromJson()将字符串转换为对象 我有两门课: Person类,即singleton类 public class Person { public String Name= "rich"; public String Address="U.K"; public static Person person = null; pr
Person类,即singleton类
public class Person {
public String Name= "rich";
public String Address="U.K";
public static Person person = null;
private Person()
{
}
public static Person getInstance()
{
if(person == null)
return new Person();
else
return person;
}
}
第二个:GsonConvertor类
public class GsonConvertor {
public static void main (String[] args) throws java.lang.Exception
{
Person person = Person.getInstance();
Gson gson = new Gson();
String jsonPerson = gson.toJson(person);
System.out.println("String of Person Object: " + jsonPerson);
Person per = gson.fromJson(jsonPerson, Person.class);
System.out.println("Object from String" + per.toString());
}
}
gson.toJson(person)代码>返回空值
有人能给我一个建议,我错在哪里了。我想要Gson.fromJson()
中的对象,它是我在调用Person类的getInstance()
方法时创建的。如果使用rest,使用单例没有多大意义。它只需要一个连接就可以工作。我在Storm中使用了这个概念。所以,当我创建拓扑时,我创建了一个对象,并且该对象传递到所有螺栓和喷嘴。这就是我将该对象转换为字符串并传递给Config类的原因。在Spoot类中,我们将该字符串转换为Object并传递给all bolt类。但是,如果下次您想将其从json转换为Object时它是一个单例,那么您将创建哪个实例?仅限Person类。Person per=gson.fromJson(Person类的字符串Person.class);顺便说一句,它不是一个单例,person-into-person.java字段从未被赋值,并且总是空值。因此,每次调用getInstance()时,都会创建一个新实例