Заключение в кавычки из http://sites.google.com/site/gson/gson-design-document:
Почему большинство классов в Gson отмечено как финал?
В то время как Gson обеспечивает довольно расширяемую архитектуру путем обеспечения сменных сериализаторов и deserializers, классы Gson не были специально предназначены, чтобы быть расширяемыми. Обеспечение незаключительных классов позволило бы пользователю законно расширять классы Gson и затем ожидать что поведение работать во всех последующих изменениях. Мы приняли решение ограничить такие примеры использования путем маркировки классов как финал и ожидания, пока хороший пример использования не появляется для разрешения расширяемости. Отмечание финала класса также обладает незначительным преимуществом обеспечения дополнительных возможностей оптимизации к компилятору Java и виртуальной машине.
Почему имеет место это? [Если я предположил бы: из JVM знает, что класс является окончательным, это не поддерживает таблицы переопределения метода? Есть ли какие-либо другие причины?]
Каково преимущество в производительности?
Это относится к классам, которые являются частотой, которая инстанцируют (POJO?) или возможно классифицировать, которые являются статическими методами держателей (Служебные классы)?
Методы определяются, поскольку финал также может теоретически улучшить производительность?
Есть ли какие-либо последствия?
Спасибо, Maxim.