Citant http://sites.google.com/site/gson/gson-design-document:
Pourquoi sont la plupart des classes dans Gson marqué comme final?
Alors que Gson fournit un assez architecture extensible en fournissant enfichable sérialiseurs et deserializers, Gson classes n'étaient pas spécialement conçu pour être extensible. Non-final les classes aurait permis à un utilisateur de légitimement étendre Gson classes, et alors s'attendre à ce que le comportement de travailler dans toutes les modifications ultérieures. Nous avons choisi de de limiter de tels cas d'utilisation par le marquage les classes final, et attendre jusqu'à ce qu'un bon de cas d'utilisation de ressort pour permettre l'extensibilité. Marquage d'une classe finale a également un léger avantage de fournir supplémentaire possibilités d'optimisation pour Java compilateur et de la machine virtuelle.
Pourquoi est-ce le cas? [Si je suppose: de la JVM sait classe est définitive, il ne maintient pas la méthode remplacer les tables? Existe-il d'autres raisons?]
Quel est l'avantage de la performance?
N'cela s'applique à des catégories que sont la fréquence instancié (POJO?) ou peut-être à la classe qui sont les détenteurs des méthodes statiques (classes utilitaires) ?
Sont des méthodes définies comme final peut aussi théoriquement d'améliorer les performances?
Existe-il des conséquences?
Merci, Maxim.