<BLOCKQUOTE>
Originally posted by sasquatch:
това са методи на потока (?) а пък се реализират в класа изобщо нещо работата е доста объркана поне за мен.
</font><HR></BLOCKQUOTE>
OK, за да не става объркване - аз говоря в контекста на предефиниция. Иначе, единствените методи с тая сигнатура са на ObjectOuput и на ObjectOutputStream (е, горе-долу де, но няма да намесвам PersistenceDelegate примерно и другите от beans йерархията). Всъщност, когато говорим за override в термините на сериализиращия механизъм на Java, то по-скоро говорим за override на този механизъм, а не конкретно на методите.
В крайна сметка, такива методи няма нагоре по йерархията на сериализирания клас, така че как да ги предефинираме? Да не говорим, че по сигнатура са private (друг въпрос е как се извикват). Изобщо, цялата работа със сериализацията си е един голям hack на VM-а. Между другото, доста често съм чувал да говорят за предефиниране на методите на Serializable интерфейса. Предполагам и това е начин да се каже. Дори да не е до буква вярно, смислово има логика
И като за финал, да обърна внимание, че сериализацията не е като баничка. Освен имплементацията на Serializable, трябва да се провери и самия клас - за статични полета, за вътрешни класове (които също трябва да се сериализират) и т.н. Между другото, всички описани проблеми произтичат от един простичък факт - java.awt.geom.Line2D/Elipse2D и т.н. просто не са сериализируеми.
Ако някой друг реши да си блъска главата с тия неща, да знае, че има простичко tool-че в JDK, което проверява дали даден клас е сериализируем. Ей така става:
cerberus:~# serialver java.awt.geom.Line2D.Float
Class java.awt.geom.Line2D.Float is not Serializable.
Поздрави,
Николай Манчев
А, за малко да забравя. Принципно, като се правят такъв род неща със собствен контрол над сериализацията, май е по-добре да се ползва Externalizable. Не, че не е същото, но поне изглежда къде по-чисто.
[This message has been edited by Nikolay Manchev (edited 30-11-2004).]
[This message has been edited by Nikolay Manchev (edited 30-11-2004).]