2010-02-13 8 views
33

Możliwe duplikaty:
Why should I bother about serialVersionUID?
what is a serial version id?Co to jest identyfikator wersji seryjnej w Javie?

Kiedy stworzył nową klasę rozciągający java.util.logging.Level w Eclipse, on poprosił mnie, aby dodać domyślne lub generowane seryjny ID wersji. Właśnie dodałem ślepo, nie wiedząc, co to jest i dlaczego muszę je dodać.

Czy ktoś może mi powiedzieć, co to jest i dlaczego jest wymagane.

+3

duplikaty: http://stackoverflow.com/questions/615181/what-is-a-serial-version-id, http://stackoverflow.com/questions/285793/why-should-i-bother-about-serialversionuid – Bozho

Odpowiedz

34

Identyfikator wersji seryjnej jest używany podczas szeregowania i deserializacji obiektu. Java rozpoznaje, czy bajty, które mają być deserializowane, odpowiadają lokalnej wersji klasy. Jeśli nie, spowoduje to wyjątek.

Jest to ważne podczas wykonywania RMI lub utrzymujących się struktur obiektów.

Istnieje bardzo dobry opis serializacji w javadoc of Serializable.