你有什么理由不能将匿名类序列化为Json吗?
示例:
public class AnonymousTest
{
private Gson gson = new Gson();
public void goWild()
{
this.callBack(new Result()
{
public void loginResult(Result loginAttempt)
{
// Output null
System.out.println(this.gson.toJson(result));
}
});
}
public void callBack(Result result)
{
// Output null
System.out.println(this.gson.toJson(result));
result.loginResult(result);
}
public static void main(String[] args)
{
new AnonymousTest().goWild();
}
}
刚开始使用它:)
答案 0 :(得分:7)
用户指南中对此进行了解释:https://sites.google.com/site/gson/gson-user-guide
Gson也可以反序列化静态嵌套类。但是,Gson不能 因为它们没有args,所以自动反序列化纯内部类 构造函数还需要对包含Object的引用 在反序列化时不可用。
您可以通过使您的类非匿名和静态来修复您的代码:
static class MyResult extends Result {
public void loginResult(Result loginAttempt) {
System.out.println(new Gson().toJson(result));
}
}
...
this.callBack(new MyResult());
请注意,您不能使用外部类中的gson字段,您必须创建一个新字段或从其他地方获取它。