2017-09-23 66 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

相關問題