[records] Is serialVersionUID warning for records redundant?

Tagir Valeev amaembo at gmail.com
Mon Aug 3 07:30:03 UTC 2020


Hello!

I believe, explicit specification of serialVersionUID in records
rarely makes sense and should be discouraged. Still javac issues a
lint warning if it's absent:

>"C:\Program Files\Java\jdk-15\bin\java.exe" --version
openjdk 15-ea 2020-09-15
OpenJDK Runtime Environment (build 15-ea+33-1546)
OpenJDK 64-Bit Server VM (build 15-ea+33-1546, mixed mode, sharing)

>type Test.java
public record Test() implements java.io.Serializable {}

>"C:\Program Files\Java\jdk-15\bin\javac.exe" --enable-preview --release=15 -Xlint:all Test.java
Test.java:1: warning: [preview] records are a preview feature and may
be removed in a future release.
public record Test() implements java.io.Serializable {}
       ^
Test.java:1: warning: [serial] serializable class Test has no
definition of serialVersionUID
public record Test() implements java.io.Serializable {}
       ^
2 warnings

To my opinion, javac should be updated to skip this warning.

With best regards,
Tagir Valeev.


More information about the amber-dev mailing list