Eclipse красиво генерирует для меня serialVersionUID. Но это, по-видимому, генерация пассивного кода, поскольку идентификатор не будет автоматически обновляться, так как я изменяю файл, если я не буду снова генерировать.
Есть ли способ генерировать serialVersionUID каждый раз, когда я меняю содержимое? "Сохранить действия", похоже, не включают такой вариант - кто-нибудь нашел способ сделать это?
Было бы неплохо, если бы он мог сочетаться с действиями сохранения IDE или чем-то похожим, чтобы я мог отменить изменение, если бы я это делал, это не влияет на сериализацию.
С уважением, Токо
EDIT: @gustafc: для этого есть два основных момента:
- Если я правильно понял, разные компиляторы могут иметь разные значения для serialVersionUID
- От Serializable API: Тем не менее, настоятельно рекомендуется, чтобы все сериализуемые классы явно объявляли значения serialVersionUID, поскольку расчет по умолчанию serialVersionUID очень чувствителен к деталям класса, которые могут различаться в зависимости от реализаций компилятора и, таким образом, могут привести к неожиданным InvalidClassExceptions во время десериализации
- Я использую тип командной строки, например, объекты, которые делают вещи на сервере. Таким образом, хотя содержимое объекта не изменяется, было бы неплохо поймать случаи, когда содержимое класса отличается на клиенте и сервере.
- Но если подумать в другой раз, это, вероятно, не будет работать с автоматически генерируемым значением, так как изменились бы только изменения контента? Итак, на самом деле я хотел бы иметь автоматически увеличивающийся serialVersionUID
Звучит ли это разумно?
Суммарное суммирование, после того, как мы больше думаем, автоматически увеличивающийся serialVersionUID с каждым изменением будет еще лучше...