Czy dwie klasy mogą mieć ten sam serialVersionUID?
Czy dwie klasy mogą mieć ten sam serialVersionUID?

Wideo: Czy dwie klasy mogą mieć ten sam serialVersionUID?

Wideo: Czy dwie klasy mogą mieć ten sam serialVersionUID?
Wideo: SerialVersionUID And Versioning in Java Serialization 2024, Listopad
Anonim

Tak, możliwe, że dwa różne zajęcia mogą mieć ten ten sam serialVersionUID wartość. Ale wolę używać unikalnego dla każdego klasa . Jako wartość należy również użyć dłuższej cyfry o 8 do 10 cyfr, a nie tylko 1.

W związku z tym, co to jest serialVersionUID?

Mówiąc najprościej, serialVersionUID jest unikalnym identyfikatorem klas możliwych do serializacji. Jest to używane podczas deserializacji obiektu, aby upewnić się, że załadowana klasa jest zgodna z serializowanym obiektem.

Podobnie, 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.

Podobnie pojawia się pytanie, czy potrzebny jest serialVersionUID?

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ę.

Jaka jest rola serialVersionUID w procesie serializacji?

W trakcie serializacja , środowisko uruchomieniowe java przypisuje każdemu numer wersji serializowalny klasa. Ten numer nazywa się serialVersionUID , który jest używany podczas deserializacji w celu sprawdzenia, czy nadawca i odbiorca serializowany obiekt ma załadowane klasy dla tego obiektu, które są kompatybilne pod względem serializacja.

Zalecana: