Лучший вариант - удалить модификаторы static
из всех ваших полей и методов и сделать NIC
подходящим объектом, для которого можно создать экземпляр. Когда вы будете придерживаться ООП (объектно-ориентированных принципов), вы обнаружите, что все становится проще. После этого все, что вам нужно сделать, это заставить NIC
реализовать Serializable
. Процедура сериализации по умолчанию автоматически сохраняет все в вашем классе, которое не помечено как transient
. ArrayList
s и все другие коллекции JDK уже сериализуемы, поэтому дальнейшая работа не требуется. Просто прочитайте руководство, опубликованное KDM.
Однако, если вы решите добавить больше полей или методов позже, у вас все равно останутся проблемы с совместимостью, поскольку старые сохраненные объекты больше не будут соответствовать сигнатуре нового, обновленного класса. Это соображение все программисты должны сделать. Использование serialVersionUID
может немного помочь, например, в случаях, когда вы просто добавляете новые методы, но не вводите новые поля, но для обеспечения обратной совместимости необходимо надлежащее тестирование.