Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Warning в Eclipse, что это значит ... 
:(
    Опции темы
almagnit
Дата 8.5.2008, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 3.4.2008

Репутация: нет
Всего: 7



В эклипсе пишу такой код:

Код

import java.awt.*;


public class test extends Frame{

    public test() {
        init();
    }

    void init(){
        setBounds(100, 100, 300, 200);
        setVisible(true);
    }
    
    public static void main(final String[] args) {
        new test();
    }

}


Получаю Warning:

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

объясните причину ...
PM MAIL ICQ   Вверх
Samotnik
Дата 8.5.2008, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



названия классов и конструкторов с большой буквы писать надо

Добавлено @ 21:10
вот это работает без предупреждений 
Код

import java.awt.*;
public class Test extends Frame{
    public Test() {
        init();
    }
    void init(){
        setBounds(100, 100, 300, 200);
        setVisible(true);
    }

    public static void main(final String[] args) {
        new Test();
    }
}


Это сообщение отредактировал(а) Samotnik - 8.5.2008, 21:14
PM MAIL   Вверх
powerOn
Дата 8.5.2008, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Цитата(almagnit @  8.5.2008,  22:02 Найти цитируемый пост)
The serializable class test does not declare a static final serialVersionUID field of type long

объясните причину ... 


Причина в настройках твоей IDE. 

Меню Windows -> Preferences -> Узел Java -> Узел Compiler -> Узел Errors/Warnings -> Potential Programming Problems -> Serializable class without serialVersionUID - Поставь Ignore.

Цитата(Samotnik @  8.5.2008,  22:09 Найти цитируемый пост)
вот это работает без предупреждений 

Samotnik, у тебя просто этот Warning отключён. Твой код никакого решения не показывает.  smile 

Это сообщение отредактировал(а) powerOn - 8.5.2008, 21:23


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Samotnik
Дата 8.5.2008, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Цитата(powerOn @  8.5.2008,  21:23 Найти цитируемый пост)
Твой код никакого решения не показывает

окошко пусток показал 

PM MAIL   Вверх
v2v
Дата 8.5.2008, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 2
Всего: 56



Цитата(almagnit @  8.5.2008,  21:02 Найти цитируемый пост)


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

твой класс наследует класс Frame, который в свою очередь реализует интерфейс Serializable.
интерфейс Serializable позволяет .. надеюсь ты это знаешь.
все классы которые реалиузуют Serializable требуют наличие приватного члена serialVersionUID.
Зачем? Вот причина из java доков: 
Цитата

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.


Добавлено через 3 минуты и 41 секунду
Цитата(powerOn @  8.5.2008,  21:23 Найти цитируемый пост)
Поставь Ignore.

а ещё в ява доках написано, что значение по умолчанию не рекомендуется.

Добавлено через 3 минуты и 59 секунд
при использовании сериализации.


--------------------
PM   Вверх
almagnit
Дата 8.5.2008, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 3.4.2008

Репутация: нет
Всего: 7



Цитата(powerOn @  8.5.2008,  21:23 Найти цитируемый пост)
Samotnik, у тебя просто этот Warning отключён. Твой код никакого решения не показывает.


Не знаю на счет настроек, но написал с большой буквы не прокатило, варнинг остался

Цитата(v2v @  8.5.2008,  21:27 Найти цитируемый пост)
 требуют наличие приватного члена serialVersionUID


а если этого члена нет, чем это грозит ?

ЗЫ:

Сериализацию блин не глядел, а нужно ...  smile !

Это сообщение отредактировал(а) almagnit - 8.5.2008, 21:51
PM MAIL ICQ   Вверх
v2v
Дата 8.5.2008, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 2
Всего: 56



Цитата(almagnit @  8.5.2008,  21:36 Найти цитируемый пост)

а если этого члена нет, чем это грозит ?


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.


--------------------
PM   Вверх
Maksym
Дата 9.5.2008, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 12
Всего: 62



Цитата(almagnit @  8.5.2008,  20:36 Найти цитируемый пост)
а если этого члена нет, чем это грозит ?

ЗЫ:

Сериализацию блин не глядел, а нужно ...

 +
Цитата(v2v @  8.5.2008,  21:01 Найти цитируемый пост)
an thus result in unexpected InvalidClassExceptions during deserialization.

= в твоем случае -- ничем не грозит.

Ни разу не сталкивался ни с одним проектом, в котором мы для всех сериализируемых классов было бы проставлено это поле.
PM MAIL   Вверх
almagnit
Дата 9.5.2008, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 3.4.2008

Репутация: нет
Всего: 7



Спасибо за советы, с эклипсом уже подружился  smile 

После JBuilder'a эти Warnings как-то насторожили  smile 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java tools & IDE's | Следующая тема »


 




[ Время генерации скрипта: 0.0820 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.