[解決済み】どういう意味か。Serializableクラスがstatic final serialVersionUIDフィールドを宣言していないとは?重複している] [重複している] [重複している] [重複している
質問
タイトルにあるような警告メッセージが表示されています。それを理解し、削除したいのですが。この質問に対する回答はすでにいくつか見つかりましたが、専門用語が多すぎてよく理解できません。この問題を簡単な言葉で説明することは可能でしょうか?
追伸:OOPが何であるかは知っています。オブジェクト、クラス、メソッド、フィールド、インスタンス化が何であるかは知っています。
P.P.S. 誰かが私のコードを必要とするならば、それはここにあります。
import java.awt.*;
import javax.swing.*;
public class HelloWorldSwing extends JFrame {
JTextArea m_resultArea = new JTextArea(6, 30);
//====================================================== constructor
public HelloWorldSwing() {
//... Set initial text, scrolling, and border.
m_resultArea.setText("Enter more text to see scrollbars");
JScrollPane scrollingArea = new JScrollPane(m_resultArea);
scrollingArea.setBorder(BorderFactory.createEmptyBorder(10,5,10,5));
// Get the content pane, set layout, add to center
Container content = this.getContentPane();
content.setLayout(new BorderLayout());
content.add(scrollingArea, BorderLayout.CENTER);
this.pack();
}
public static void createAndViewJFrame() {
JFrame win = new HelloWorldSwing();
win.setTitle("TextAreaDemo");
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
win.setVisible(true);
}
//============================================================= main
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
public void run(){
createAndViewJFrame();
}
});
}
}
解決方法は?
からの ジャバドック :
シリアライゼーションランタイムは、各シリアライゼーション可能なクラスに対して
serialVersionUID
これは、デシリアライズの際に、シリアライズされたオブジェクトの送信者と受信者が、シリアライズに関して互換性のあるそのオブジェクトのクラスをロードしたことを確認するために使用されます。もし、受信者がオブジェクトのクラスをロードした場合、そのクラスは異なるserialVersionUID
対応する送信者クラスのものと異なる場合、デシリアライズはInvalidClassException
. シリアライズ可能なクラスは、独自のserialVersionUID
というフィールドを宣言することで、明示的に"serialVersionUID"
は static で final、かつ long 型でなければなりません。
IDEに設定することができます。
- 警告を出す代わりに、これを無視します。
- idを自動生成する
追加の質問ですが、GUIアプリケーションがフリーズする原因は、この警告メッセージにあるのでしょうか?
いいえ、そんなことはありません。オブジェクトをシリアライズして、クラスが変更された(時)別の場所(時)でデシリアライズする場合にのみ問題が発生する可能性があり、フリーズには至りませんが
InvalidClassException
.
関連
-
[解決済み] 解決済み】Javaが「型をインスタンス化できない」というエラーを返す [重複] [重複]
-
[解決済み】純粋なJUnitテストにVisibleForTestingを使用する方法
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] Javaクラスにおけるcanonical name、simple name、class nameの違いは何ですか?
-
[解決済み] シンクロナイズド」とはどういう意味ですか?
-
[解決済み] Javaにおける "final class "の意味とは?
-
[解決済み] Javaリフレクションを用いた静的なプライベートfinalフィールドの変更
-
[解決済み] import」の後の「static」モディファイアは何を意味するのですか?
-
[解決済み】KotlinでJavaの静的メソッドに相当するものは何ですか?
-
[解決済み] Serializableとはどういう意味ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー:'if'のない'else'エラー
-
[解決済み】Java、"変数名 "を変数に解決することができない
-
[解決済み】指定された子にはすでに親がいます。先に子の親に対してremoveView()を呼び出す必要がある(Android)
-
[解決済み】宣言されたパッケージが期待されるパッケージと一致しない ""
-
[解決済み】Java JDK - doubleからintへの非可逆変換の可能性
-
[解決済み】Javaで無限大を実装する方法とは?
-
[解決済み】 JAVA 変数宣言はここではできない
-
[解決済み] タイプの安全性。アンチェック・キャスト
-
[解決済み] Static Final Long serialVersionUID = 1L [重複]。
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?