Lorsque j'utilise la bibliothèque Gson, je trouve classe dérivée classe normale et anonyme a conduit à une sortie différente en utilisant gson.toJson()
.Ici est le code (Il suffit de démontrer, ignorer la grammaire):Différence entre la classe anonyme et la classe dérivée normale face à Gson?
La classe dérivée:
class StringWrap {
private String str = "qwerty";
}
Object derived = new StringWrap();
La classe anonyme:
Object anonymous = new Object(){
private String str="qwerty";
};
En fait, new Gson().toJson(derived)
retour {"str":"qwerty"}
, mais new Gson().toJson(anonymous)
retoursdix .
Y a-t-il quelque chose de différent entre la classe anonyme et la classe dérivée? Ou est-ce quelque chose concernant Gson?
Alors, pourquoi sont des classes anonymes uniques? – obfish
@obfish Les classes anonymes sont des expressions où les classes locales sont des déclarations. Les classes anonymes vous permettent de déclarer et d'instancier une classe en même temps. Ils sont aussi sans nom. – Moe