При реализации интерфейса Serializable
в Java нам нужно установить его длиной serialVersionUID
.На Java Serializable необходимо уточнение
Существуют ли какие-либо отличия от того, выбраны ли по умолчанию или автоматически сгенерированы?
Когда следует отдать предпочтение другому?
Если выбрано авто сгенерированное длинное, следует ли его изменить в классе событий, если он изменен? Другими словами, значение, которое присваивается serialVersionUID .. связано с текущей структурой класса и полей и методов, которые там объявлены?
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 6749067740891125834L;
Возможный дубликат [Что такое serialVersionUID и зачем его использовать?] (Http://stackoverflow.com/questions/285793/what-is-a-serialversionuid-and-why-should-i-use- это) – paulsm4
Возможный дубликат [Зачем генерировать длинный serialVersionUID вместо простого 1L?] (http://stackoverflow.com/questions/888335/why-generate-long-serialversionuid-instead-of-a-simple-1l) – Thilo
Два недостатка использования серийного ID по умолчанию: 1) Он зависит от компилятора и версии. Автоматический номер может случайно «ломаться», если вы попытаетесь десериализоваться в разных средах. 2) Вы получаете эти раздражающие предупреждения :) Просто используйте «1L» и fugghedabouddit;) – paulsm4