Предупреждение поля serialVersionUID в eclipse

Я только что начал работу с AWT и сделал в нем простую программу, он отлично работает, но он показывает предупреждение в eclipse, которое я не понимаю:

Сериализуемый класс TestGUI не объявляет статический окончательный Поле serialVersionUID типа 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);
    }

}

Thanx заранее!

9
15 июня '12 в 17:27
источник поделиться
2 ответов

У Eclipse раньше было отключено это предупреждение. В Eclipse Indigo (3.7) по умолчанию было включено предупреждение. Вы можете изменить настройку в 2-х местах, одну для всего в рабочей области и одну для одного проекта.

Чтобы отключить предупреждение для всех проектов в рабочем пространстве, перейдите в "Окно/Предпочтения" и откройте вкладку "Java/Compiler/" Ошибки/Предупреждения "и откройте" Потенциальные проблемы программирования ", затем измените значение" Сериализуемый класс без serialVersionUID" для игнорирования (или того, что, по вашему мнению, подходит).

Чтобы отключить предупреждение для одного проекта, вы можете щелкнуть правой кнопкой мыши по проекту, выбрать "Свойства", затем перейти к "Компилятор Java" / "Ошибки/предупреждения", нажмите "Включить специальные настройки проекта" (если необходимо), затем выберите "Потенциальные проблемы программирования" и измените значение "Сериализуемый класс без serialVersionUID" на "Игнорировать" (или что вам кажется нужным).

20
15 июня '12 в 17:46
источник

TestGUI extends Frame, который, в свою очередь, реализует Serializable. Требование интерфейса Serializable состоит в том, чтобы иметь поле final long serialVersionUID. Подробнее см. Serializable 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...
5
15 июня '12 в 17:30
источник

Посмотрите другие вопросы по меткам или Задайте вопрос