编译警告 - 弃用并且没有serialVersionUID的定义

Bas*_*sil 0 java swing warnings

我正在尝试下面的代码,但它给了我警告信息但是当我执行它时运行没有错误.

import javax.swing.JFrame;
class MyFrame extends JFrame {
    public  MyFrame() {
        setTitle("Besm Allah Ya Allah");
        setSize(300,300);
        setLocation(10,100);
    }
    public static void main(String[] args){
        JFrame f = new MyFrame();
        f.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

javac -Xlint MyFrame.java 给我:

MyFrame.java:13: warning: [deprecation] show() in Window has been deprecated
f.show();
 ^
MyFrame.java:3: warning: [serial] serializable class MyFrame has no definition of serialVersionUID
class MyFrame extends JFrame {
^
2 warnings
Run Code Online (Sandbox Code Playgroud)

问题是什么?为什么我收到警告信息?

Mar*_*oun 5

Window#show:

在此输入图像描述

你应该用Window#setVisible(true).

第二次警告,请参阅Serializable:

可序列化类可以通过声明名为"serialVersionUID"的字段来显式声明其自己的serialVersionUID,该字段必须是static,final和long类型