Spisu treści:

Dlaczego dodajemy serialVersionUID?
Dlaczego dodajemy serialVersionUID?

Wideo: Dlaczego dodajemy serialVersionUID?

Wideo: Dlaczego dodajemy serialVersionUID?
Wideo: SerialVersionUID And Versioning in Java Serialization 2024, Listopad
Anonim

Dlaczego tak używamy SerialVersionUID : SerialVersionUID to służy do zapewnienia, że podczas deserializacji ta sama klasa (która została użyta podczas procesu serializacji) jest załadowany. Serializacja: w czasie serializacji z JVM po stronie nadawcy każdego obiektu Wola zapisać unikalny identyfikator.

Ponadto, dlaczego używamy serialVersionUID?

Mówiąc najprościej, serialVersionUID jest unikalnym identyfikatorem klas możliwych do serializacji. To jest używany podczas deserializacji obiektu, aby upewnić się, że załadowana klasa jest zgodna z serializowanym obiektem. Jeśli nie zostanie znaleziona pasująca klasa, zostanie zgłoszony InvalidClassException.

Poza powyższym, czy serialVersionUID jest potrzebny? domyślny serialVersionUID obliczenia są bardzo wrażliwe na szczegóły klasy, które mogą się różnić w zależności od implementacji kompilatora i Móc w ten sposób powodują nieoczekiwane InvalidClassException s podczas deserializacji. Dlatego musisz zadeklarować serialVersionUID ponieważ daje nam większą kontrolę.

Poza tym, do czego służy serialVersionUID 1l?

ten serialVersionUID to uniwersalny identyfikator wersji dla klasy Serializable. Deserializacja używa ten numer, aby upewnić się, że załadowana klasa dokładnie odpowiada obiektowi serializowanemu. Jeśli nie zostanie znalezione żadne dopasowanie, zostanie zgłoszony InvalidClassException.

Co oznacza serialVersionUID?

Java: Jak wygenerować serialVersionUID

  1. polecenie serialver. JDK ma wbudowane polecenie o nazwie „ serialver”, które automatycznie generuje identyfikator serialVersionUID.
  2. Użyj środowiska Eclispe IDE. Jeśli używasz środowiska Eclipse, przesuń kursor myszy na klasę serializacji.
  3. Cokolwiek chcesz. Po prostu określ swój własny serialVersionUID, podaj numer i dopisz „L” z tyłu.

Zalecana: