2017-09-23 1 views
0

私はGsonライブラリを使用すると、私は匿名クラスを発見し、gson.toJson() .Hereを使用して別の出力につながった通常の派生クラスは、コード(ジャスト文法を無視し、証明するため)である: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は匿名クラスをサポートしていません。内部クラス、匿名クラス、およびローカルクラスで、外側のクラスに対応するhttps://sites.google.com/site/gson/gson-user-guide

フィールドは無視され、

+0

それでは、なぜ直列化または直列化復元には含まれていません。 私はgsonのユーザーガイドでこれを見つけました匿名のクラスは一意ですか? – obfish

+0

@obfish匿名クラスは、ローカルクラスとしての宣言である式です。匿名クラスを使用すると、クラスを同時に宣言してインスタンス化することができます。彼らはまた無名です。 – Moe

関連する問題