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

时间:2014-04-02 07:26:56

标签: 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();
    }
}

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

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

1 个答案:

答案 0 :(得分:5)

请参阅Window#show

enter image description here

您应该使用Window#setVisible(true)

要获得第二次警告,请参阅Serializable

  

可序列化类可以显式声明自己的serialVersionUID   通过声明一个名为“serialVersionUID”的字段必须是静态的,   final和long类型