[Webinar] Streamline your web hosting managementRegister Today

x
?
Solved

What the difference on using a generated serial version UID or the default 1L for serializable classes?

Posted on 2009-02-22
2
Medium Priority
?
903 Views
Last Modified: 2013-11-23
What the difference on using a generated serial version UID or the default 1L for serializable classes? I normally use the eclipse to generate something like this:

private static final long serialVersionUID = -2116265392766117076L;

Is this necessary, and why is it done?
0
Comment
Question by:Suppai
2 Comments
 
LVL 12

Accepted Solution

by:
basav_com earned 1200 total points
ID: 23705691
If a serializable class does not explicitly declare a serialVersionUID, then the serialization runtime will calculate a default serialVersionUID value for that class based on various aspects of the class, as described in the Java(TM) Object Serialization Specification. However, it is strongly recommended that all serializable classes explicitly declare serialVersionUID values, since the default serialVersionUID computation is highly sensitive to class details that may vary depending on compiler implementations, and can thus result in unexpected InvalidClassExceptions during deserialization. Therefore, to guarantee a consistent serialVersionUID value across different java compiler implementations, a serializable class must declare an explicit serialVersionUID value. It is also strongly advised that explicit serialVersionUID declarations use the private modifier where possible, since such declarations apply only to the immediately declaring class--serialVersionUID fields are not useful as inherited members.

Check this:
http://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html
0
 
LVL 92

Assisted Solution

by:objects
objects earned 300 total points
ID: 23706823
I'd suggest always including it.

The following is a good read on the subject

http://www.javapractices.com/topic/TopicAction.do?Id=45

0

Featured Post

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
In this post we will learn how to make Android Gesture Tutorial and give different functionality whenever a user Touch or Scroll android screen.
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…
Suggested Courses
Course of the Month10 days, 11 hours left to enroll

612 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question