Какой алгоритм используется eclipse для генерации идентификатора версии в классе Serializable?

Предположим, вот мой класс:

class B implements Serializable {

    private static final long serialVersionUID = -5186261241138469827L; // what algo is used to generate this
     ..........
}

Какой алгоритм eclipse использует для генерации serialVersionUID = -5186261241138469827L ?


person Prateek    schedule 30.09.2013    source источник
comment
Возможно, он использует serialver.   -  person Maroun    schedule 30.09.2013
comment
Дублировано: stackoverflow.com/questions/7738162/   -  person Averroes    schedule 30.09.2013


Ответы (2)


Eclipse реализует соответствующую спецификацию Java для вычислить идентификатор сериализации.

В Eclipse это реализуется calculateSerialVersionId в org.eclipse.jdt.internal.ui.text.correction.SerialVersionHashOperation.

person krishnakumarp    schedule 30.09.2013

Документы по спецификации сериализации объектов Java , данные этот алгоритм

Хэш-значение собирается из первого и второго 32-битных значений дайджеста сообщения SHA-1. Если результат дайджеста сообщения, пять 32-битных слов H0 H1 H2 H3 H4, находится в массиве из пяти значений int с именем sha, хэш-значение будет вычисляться следующим образом:

  long hash = ((sha[0] >>> 24) & 0xFF) |
              ((sha[0] >>> 16) & 0xFF) << 8 |
              ((sha[0] >>> 8) & 0xFF) << 16 |
              ((sha[0] >>> 0) & 0xFF) << 24 |
              ((sha[1] >>> 24) & 0xFF) << 32 |
              ((sha[1] >>> 16) & 0xFF) << 40 |
              ((sha[1] >>> 8) & 0xFF) << 48 |
              ((sha[1] >>> 0) & 0xFF) << 56;
person Suresh Atta    schedule 30.09.2013