有没有人知道如何使用Gson Instance Creator序列化Runnable对象?
谢谢, 凯文
答案 0 :(得分:2)
如上所述,Instance Creator功能用于反序列化,而不是序列化。此外,不需要使用实例创建器来反序列化Runnable
。
以下是使用Gson序列化和反序列化Runnable
实例的示例。
import com.google.gson.Gson;
public class GsonFoo
{
public static void main(String[] args)
{
BarRun runRunRun = new BarRun();
runRunRun.name = "Whiskey";
runRunRun.state = 42;
String json = new Gson().toJson(runRunRun);
System.out.println(json);
// output: {"name":"Whiskey","state":42}
BarRun runCopy = new Gson().fromJson(json, BarRun.class);
System.out.println(runCopy.name); // Whiskey
System.out.println(runCopy.state); // 42
}
}
class BarRun implements Runnable
{
String name;
int state;
@Override
public void run()
{
// do something useful
}
}
如果您尝试实现的内容需要使用实例创建器,请注意the Gson User Guide section on the subject以及the InstanceCreator JavaDocs中提供的示例。