2011-11-22 2 views
0

사람이 Gson의 인스턴스 작성기를 사용하여 Runnable 개체를 seralize하는 방법을 알고 있습니까?Gson이 runnable을 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 InstanceCreator JavaDocs에, the Gson User Guide section on the subject에서 사용할 수 있습니다.

+0

감사합니다. TON 프로그래머 Bruce! –

+0

이것은 오래된 게시물이지만 'run() '함수의 내용을 직렬화 할 수 있는지 궁금합니다. 'Runable'과 'Serializable '만 구현하는 'CustomRunnable'클래스가 있지만 직렬화 된 객체에서 'CustomRunnable '을 검색하고 'run()'함수를 호출 할 수 없습니다. – Jacks

관련 문제