Luc*_*elt 8 java anonymous-class gson
你有什么理由不能将匿名类序列化为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();
}
}
Run Code Online (Sandbox Code Playgroud)
刚开始吧:)
用户指南中对此进行了解释:https://sites.google.com/site/gson/gson-user-guide
Gson还可以反序列化静态嵌套类.但是,Gson不能自动反序列化纯内部类,因为它们的no-args构造函数还需要对反序列化时不可用的包含Object的引用.
您可以通过使您的类非匿名和静态来修复您的代码:
static class MyResult extends Result {
public void loginResult(Result loginAttempt) {
System.out.println(new Gson().toJson(result));
}
}
...
this.callBack(new MyResult());
Run Code Online (Sandbox Code Playgroud)
请注意,您不能使用外部类的gson字段,您必须创建一个新的或从其他地方获取它.
| 归档时间: |
|
| 查看次数: |
3916 次 |
| 最近记录: |