Несмотря на то, что этот класс не предназначен для сериализации, я получаю это необычное предупреждение! Может ли кто-нибудь сообщить мне, если вы столкнулись с таким странным предупреждением?!
C:\Documents and Settings\...filename.java:60: warning: [serial] serializable class SomeClass has no definition of serialVersionUID public class NewPortalConnection extends javax.swing.JFrame {
Привет
Это предупреждение появляется, когда вы наследуете класс, который реализует Serializable.В вашем случае родительским классом Serializable является JFrame.
Вы можете подавить это предупреждение с помощью @SuppressWarnings ("serial") или присвоить классу serialVersionUID: private static final long serialVersionUID = ...; (с длинным значением для точек).
private static final long serialVersionUID = ...;
Здесь обсуждается , что является предпочтительным.
Если вы знаете, что ваше приложение никогда не сериализует вещи, добавьте -Xlint:-serial к аргументам командной строки javac.Например,
-Xlint:-serial
javac
javac -Xlint -Xlint:-serial *****
Таким образом, у вас будут все предупреждения, кроме «серийного».
JFrame реализует Serializable, поэтому все расширяющие классы также реализуют Serializable.
JFrame
Вот учебник о Serializable и serialVersionUID , но чтобы действительно понять тему, вы должны прочитать Главу 11 Эффективная Java (2-е издание) Джошуа Блоха