| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java tools & IDE's > Warning в Eclipse |
| Автор: almagnit 8.5.2008, 21:02 | ||
В эклипсе пишу такой код:
Получаю Warning: The serializable class test does not declare a static final serialVersionUID field of type long объясните причину ... |
| Автор: Samotnik 8.5.2008, 21:09 | ||
| названия классов и конструкторов с большой буквы писать надо Добавлено @ 21:10 вот это работает без предупреждений
|
| Автор: Samotnik 8.5.2008, 21:26 |
окошко пусток показал |
| Автор: v2v 8.5.2008, 21:27 | ||||
твой класс наследует класс Frame, который в свою очередь реализует интерфейс Serializable. интерфейс Serializable позволяет .. надеюсь ты это знаешь. все классы которые реалиузуют Serializable требуют наличие приватного члена serialVersionUID. Зачем? Вот причина из java доков:
Добавлено через 3 минуты и 41 секунду а ещё в ява доках написано, что значение по умолчанию не рекомендуется. Добавлено через 3 минуты и 59 секунд при использовании сериализации. |
| Автор: almagnit 8.5.2008, 21:36 | ||
Не знаю на счет настроек, но написал с большой буквы не прокатило, варнинг остался а если этого члена нет, чем это грозит ? ЗЫ: Сериализацию блин не глядел, а нужно ... |
| Автор: v2v 8.5.2008, 22:01 |
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 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. Therefore, to guarantee a consistent serialVersionUID value across different java compiler implementations, a serializable class must declare an explicit serialVersionUID value. It is also strongly advised that explicit serialVersionUID declarations use the private modifier where possible, since such declarations apply only to the immediately declaring class--serialVersionUID fields are not useful as inherited members. |
| Автор: Maksym 9.5.2008, 00:53 | ||||
+
= в твоем случае -- ничем не грозит. Ни разу не сталкивался ни с одним проектом, в котором мы для всех сериализируемых классов было бы проставлено это поле. |
| Автор: almagnit 9.5.2008, 18:39 |
| Спасибо за советы, с эклипсом уже подружился После JBuilder'a эти Warnings как-то насторожили |