java - eclipse 中的 serialVersionUID 字段警告

标签 java serialization awt serialversionuid

我刚刚开始使用 AWT 并在其中编写了一个简单的程序,它工作正常但它在 eclipse 中显示了一条我不理解的警告消息:

The serializable class TestGUI does not declare a static final serialVersionUID field of type long

我知道警告消息与 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);
    }

}

提前致谢!

最佳答案

Eclipse 曾经默认禁用该警告。在 Eclipse Indigo (3.7) 中,默认情况下启用警告。您可以在 2 个位置更改设置,一个用于工作区中的所有内容,一个用于单个项目。

要禁用工作区中所有项目的警告,转到窗口/首选项并打开 Java/编译器/“错误/警告”选项卡,然后打开“潜在编程问题”,然后更改忽略“没有 serialVersionUID 的可序列化类”的值(或您认为合适的任何值)。

要禁用单个项目的警告,您可以右键单击该项目,选择属性,然后转到 Java 编译器/“错误/警告”,单击启用项目特定设置(如果必要的),然后选择“潜在的编程问题”并将“没有 serialVersionUID 的可序列化类”的值更改为忽略(或您认为合适的任何值)。

关于java - eclipse 中的 serialVersionUID 字段警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11052627/

相关文章:

java - 使用 JAXB 解码不起作用

java - 键绑定(bind)问题

java - 旋转坐标(Java 和几何)

java - TYPE_4BYTE_ABGR 到 TYPE_3BYTE_BGR 的转换

java - 在 Java 中同时处理 Json 数组并按顺序处理

java - 即使用户在页面上进行 Activity ,Liferay session 也会过期

c# - 如何将数组序列化为查询字符串?

c# - 仅适用于 Json.NET 中的一个属性的自定义序列化器,无需更改模型类

Java EE 6 与 Spring 3 堆栈

c# - WCF:序列化和反序列化泛型集合