Java содержит много классов (например, в Swing), которые реализуют страшный и подверженный ошибкам интерфейс Serializable.
Если вы реализуете, скажем, новый TableModel, расширяя AbstractTableModel, новая модель должна быть сериализуемой, но что, если она содержит внутренние типы данных, которые не являются сериализуемыми и которые не должны быть, поскольку вы не Не планируете ли вы использовать эту функцию?
В таком случае инструменты вроде Sonar сходят с ума. Или жалуются, что "Class Foo определяет непереходное поле несериализуемого экземпляра bar".
Итак, я делаю это поле transient просто для того, чтобы получить "Поле Foo.bar является временным, но не задано десериализацией"
Можно ли сказать "Нет, этот класс не сериализуем, и я не хочу, чтобы он был таким", чтобы вы не получали никаких ошибок в таких инструментах, как Sonar?