在Eclipse中的serialVersionUID领域警告(serialVersionUID fi

2019-07-29 22:40发布

我刚开始对AWT和它做了一个简单的程序,它工作正常,但它显示了在Eclipse中,我不明白的警告信息:

该序列化类TestGUI没有声明long类型的静态最后的serialVersionUID领域

我知道,警告信息是不相关的AWT,也没有必要发表我的整个代码,但是当我试图使代码的警告也消失的SSCCE。 因为我不知道为什么会产生这个警告不要我没有知道我SSCCE保留哪部分。 因此,整个代码!

我的代码是:

import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TestGUI extends Frame {
    /**
     * @param args
     */
    private int x = 50;
    private int y = 50;

    TestGUI(String s) {
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent we) {
                setVisible(false);
                System.exit(0);
            }
        });
        addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent me) {
                x = me.getX();
                y = me.getY();
                repaint();
            }
        });
    }

    public void paint(Graphics g) {
        g.drawString("Hello Princess", 100, 100);
        g.drawString("Mouse clicked here", x, y);
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        TestGUI tg = new TestGUI("first");
        tg.setSize(500, 500);
        tg.setVisible(true);
    }

}

Thanx提前!

Answer 1:

用Eclipse有默认情况下禁用该警告。 在Eclipse靛蓝(3.7),默认是启用警告。 您可以在两个地方,一个工作区中的一切,以及一个用于单个项目更改设置。

要禁用工作区中的所有项目的前车之鉴,去窗口/首选项,打开Java /编译器/“错误/警告”选项卡,打开“潜在编程问题”,然后改变价值“的Serializable类没有的serialVersionUID”到忽略(或任何你认为合适)。

要禁用单个项目进行了警告,可以在项目上单击右键,选择属性,然后转到Java编译器/“错误/警告”,点击启用项目特定的设置(如有必要),然后选择“潜在编程问题”并改变“Serializable类的serialVersionUID无”的值忽略(或任何你认为合适)。



Answer 2:

TestGUI扩展Frame这又实现Serializable 。 的的需求Serializable接口是有一个final long serialVersionUID领域。 见序列化的javadoc获得更多信息。

要引述的Javadoc的重要组成部分:

...it is strongly recommended that all serializable classes explicitly declare
serialVersionUID values, since the default serialVersionUID computation is highly
sensitive to class details that may vary depending on compiler implementations...


文章来源: serialVersionUID field warning in eclipse