Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
The serializable class Kalender does not declare a static fi
The serialization runtime associates with each serializable class a version number, called a serialVersionUID, which is used during deserialization to verify that the sender and receiver of a serialized object have loaded classes for that object that are compatible with respect to serialization. If the receiver has loaded a class for the object that has a different serialVersionUID than that of the corresponding sender's class, then deserialization will result in an InvalidClassException. A serializable class can declare its own serialVersionUID explicitly by declaring a field named "serialVersionUID" that must be static, final, and of type long:
ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;
If a serializable class does not explicitly declare a serialVersionUID, then the serialization runtime will calculate a default serialVersionUID value for that class based on various aspects of the class, as described in the Java(TM) Object Serialization Specification. However, 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, and can thus result in unexpected InvalidClassExceptions during deserialization
Mir ist bekannt, was die SUID bewirkt und wozu diese dient, aber warum schlägt Eclipse vor, das sich diese in diversen Klassen implemtieren soll. Ich serialsiere kein einziges Objekt und habe die Serializable nicht "implents".
Selbst wenn Du nicht explizit "implements Serializable" hinschreibst, kann Dein Klasse trotzdem das Interface implementieren, weil sie a) ein Interface implementiert, welches von Serializable abgeleitet ist oder b) von einer Klasse abgeleitet ist, die selbst Serializable implementiert.
Nur um mal die einfachste Antwort zu geben:
Eclipse tut es weil du dieses Warning angeschaltet hast.
Ich meine dass du es nicht serialisierst ist doch Eclipse (zum Glück) egal. Du kannst schließlich auch aus einem anderen, für Eclipse nicht sichtbaren Programm, auf diese Klassen zugreifen. Gründe warum diese nach einer UID verlangen hat Murray ja schon genannt und dir ist ja klar wozu die dient. Von daher könntest du dann Probleme (bzw. eine Exception) bekommen, wenn du die hier serialisierst.