Problem z tworzenie okien

0

Witam, zaczynam dopiero przygodę z Javą, mam pytanie odnośnie poniższego kodu, który generuje ostrzeżenie:

Description Resource Path Location Type
The serializable class BaseFrame does not declare a static final serialVersionUID field of type long Base.java /APP_2011_001/src line 15 Java Problem

Do tej pory programowałem w C#, nie wiem na czym polega problem?

import java.awt.EventQueue;
import javax.swing.JFrame;

public class Base {
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			@Override
			public void run() {
				new BaseFrame();
			}
		});
	}
}

class BaseFrame extends JFrame {
	public BaseFrame() {
		super("System");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setExtendedState(JFrame.MAXIMIZED_BOTH);
		
		this.setVisible(true);
		this.setResizable(false);
	}
}
0

Możesz spokojnie ignorować to ostrzeżenie.

0

A powiedz chociaż czym jest ono spowodowane...

0

Tym, że

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

Serializacja, to zapisywanie obiektów (np. do pliku). Pole serialVersionUID pozwala uniknąć sytuacji, że obiekt został utworzony przez starą wersję klasy, a próbujemy go odczytać przez nową wersję klasy.

0

A jak powinno to wyglądać poprawnie?

0

Nie ma jedynie słusznego sposobu. Najprostsze, to:

  • dodać pole
private static final long serialVersionUID=1L;
  • dodać adnotację
@SuppressWarnings("serial")

1 użytkowników online, w tym zalogowanych: 0, gości: 1