2011-11-22 23 views
0

有谁知道如何使用seralize GSON的实例创建一个Runnable对象?Gson seralize可运行?

感谢, 凯文

+0

的实例创建功能对于反序列化,系列化没有。 –

回答

2

如前所述,实例制作功能是反序列化,系列化没有。此外,使用实例创建者的反序列化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

+0

感谢TON程序员布鲁斯! –

+0

这是一个比较旧的帖子,但我想知道是否可以序列化'run()'函数的内容?我有一个'CustomRunnable'类,它只实现'Runnable'和'Serializable',但我无法从序列化对象中检索我的'CustomRunnable'并调用'run()'函数 – Jacks