java.io.Serial vs java.io.Serializable javadoc
Roger Riggs
roger.riggs at oracle.com
Mon Mar 15 14:35:34 UTC 2021
Hi,
The serialVersionUID is recommended to be declared as "private" and
warrant a warning.
There's no value to it being public or protected and it is just noise in
the javadoc of the class.
The Serialized Form of each class documents the value of the
serialVersionUID regardless of the
access modifier.
Similarly, the writeReplace and readResolve methods that are specified to
allow ANY-ACCESS-MODIFIER are recommended to be private also, for the
same reasons.
Regards, Roger
On 3/13/21 4:07 AM, Zheka Kozlov wrote:
> Hi!
>
> The javadoc of java.io.Serial [1] says that serialVersionUID is private.
> But the javadoc of Serializable [2] says it can have any access modifier.
> Who is right here? When I write the following code, should there be a
> warning or not?
>
> import java.io.Serial;import java.io.Serializable;
> public class SerExample implements Serializable {
> @Serial // warning or not?
> public static final long serialVersionUID = 2L;}
>
>
> This question originated in this [3] discussion in the IDEA bugtracker.
>
> With best regards, Zheka.
>
> [1]
> https://docs.oracle.com/en/java/javase/15/docs/api/java.base/java/io/Serial.html
> [2]
> https://docs.oracle.com/en/java/javase/15/docs/api/java.base/java/io/Serializable.html
> [3] https://youtrack.jetbrains.com/issue/IDEA-230392
More information about the core-libs-dev
mailing list