Gson序列化了一个可运行的?

时间:2011-11-22 04:16:30

标签: java gson

有没有人知道如何使用Gson Instance Creator序列化Runnable对象?

谢谢, 凯文

1 个答案:

答案 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中提供的示例。