2017-09-23 54 views
0

当我使用GSON图书馆,我发现匿名类和正常的派生类使用gson.toJson()。这里是代码(只是为了演示,忽略语法)导致了不同的输出:面对Gson时,匿名类和普通派生类之间的区别?

派生类:

class StringWrap { 
    private String str = "qwerty"; 
} 

Object derived = new StringWrap(); 

匿名类:

Object anonymous = new Object(){ 
     private String str="qwerty"; 
    }; 

事实证明,new Gson().toJson(derived)回报{"str":"qwerty"},但new Gson().toJson(anonymous)回报null

匿名类和派生类之间有什么不同吗?或者是关于Gson的事情?

回答

0

Gson不支持匿名类。 我发现这个GSON用户指南:对应于内部类,匿名类和局部类外班https://sites.google.com/site/gson/gson-user-guide

字段被忽略,并且不包括在序列化和反序列化

+0

那么,为什么匿名类是唯一的吗? – obfish

+0

@obfish匿名类是表达式,其中本地类是声明。匿名类允许您同时声明和实例化一个类。他们也是无名的。 – Moe

相关问题