2011-10-19 9 views
21

イベントこのクラスは直列化可能に設定されていませんが、この異常な警告が表示されます。あなたがこのような奇妙な警告に出くわしたことを誰かに教えてもらえますか?警告:[serial]直列化可能なクラスSomeClassにはserialVersionUIDの定義がありません

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

よろしく

答えて

36

あなたはSerializableを実装したクラスから派生したときにこの警告が来ます。あなたのケースでは、Serializable親クラスはJFrameです。

@SuppressWarnings( "serial")でこの警告を抑制したり、クラスにserialVersionUID:private static final long serialVersionUID = ...;(ドットの値が長い)を指定することができます。

ここにdiscussionがあり、ここにはSOが好ましい。

+0

この警告を取り除くためには、どうすればいいと思いますか? – Sam

+0

答えにオプションを追加しました。 –

+0

ありがとうS.L.答えの正確さとスポットのバース!あなたは私にたくさんのハストを救った!ではごきげんよう! – Sam

6

JFrameはSerializableを実装しているため、すべての拡張クラスもSerializableを実装しています。あなたのアプリケーションは、物事をシリアル化したことがない知っている場合

がここにチュートリアルabout Serializable and serialVersionUIDだが、実際にトピックを理解するためにあなたがEffective Java (2nd Ed) by Joshua Bloch

+0

私は間違いなく提案された論文を読むでしょう!ありがとうショーン! – Sam

4

の第11章を読んでください、ここで完全に警告を抑制するための方法です。

javacのコマンドライン引数に-Xlint:-serialを追加します。例えば、

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

この方法は、あなたは、「シリアル」を除くすべての警告を持っています。

関連する問題