предупреждение: [serial] сериализуемый класс SomeClass не имеет определения serialVersionUID - PullRequest
22 голосов
/ 19 октября 2011

Несмотря на то, что этот класс не предназначен для сериализации, я получаю это необычное предупреждение! Может ли кто-нибудь сообщить мне, если вы столкнулись с таким странным предупреждением?!

C:\Documents and Settings\...filename.java:60: warning: [serial] serializable class SomeClass has no definition of serialVersionUID
public class NewPortalConnection extends javax.swing.JFrame {

Привет

Ответы [ 3 ]

42 голосов
/ 19 октября 2011

Это предупреждение появляется, когда вы наследуете класс, который реализует Serializable.В вашем случае родительским классом Serializable является JFrame.

Вы можете подавить это предупреждение с помощью @SuppressWarnings ("serial") или присвоить классу serialVersionUID: private static final long serialVersionUID = ...; (с длинным значением для точек).

Здесь обсуждается , что является предпочтительным.

6 голосов
/ 15 декабря 2015

Если вы знаете, что ваше приложение никогда не сериализует вещи, добавьте -Xlint:-serial к аргументам командной строки javac.Например,

javac -Xlint -Xlint:-serial *****

Таким образом, у вас будут все предупреждения, кроме «серийного».

6 голосов
/ 19 октября 2011

JFrame реализует Serializable, поэтому все расширяющие классы также реализуют Serializable.

Вот учебник о Serializable и serialVersionUID , но чтобы действительно понять тему, вы должны прочитать Главу 11 Эффективная Java (2-е издание) Джошуа Блоха

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...