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