Может ли NetBeans генерировать автоматический идентификатор последовательной версии для класса Java?

Я хотел бы удалить некоторые предупреждения для некоторых классов, создав автоматический идентификатор последовательной версии. В Eclipse это тривиально - IDE может автоматически генерировать его и добавлять в класс. Однако, я не вижу этой функции в NetBeans. Он доступен? Если да, то где он? Если нет, есть ли плагин, который может его включить?

5 ответов


на самом деле моим решением этой "проблемы" было отключить это предупреждение в моей конфигурации проекта (я использую Eclipse, но я думаю, что для NetBeans это то же самое), что и IMHO, это неправильное предупреждение:, не имеющего serialVersion-самый безопасный выбор, потому что JVM вычисляет тот, который уникален при запуске (что-то вроде хэша класса), добавляя его явно, а затем обременяет вы позаботиться, чтобы обновить его, если и только если вы сделали несовместимые изменения в коде.

Итак, если вы не заботитесь об этом, лучше избегать этого значения (таким образом, оно совместимо только с версией, которая совместима точно, но с некоторыми ложными срабатываниями: он думает, что это несовместимо, но на самом деле это было бы) вместо того, чтобы ставить там фиксированное значение, которое вы (вероятно, в моем случае) забудете обновить, когда это необходимо, что приводит к фактическим ошибкам достоверности (ложные отрицания: он думает, что он совместим, но это не.)


похоже, что из коробки NetBeans не поддерживает эту функцию, но Плагины делают.

пожалуйста, посмотрите на

ссылка 1, Ссылка 2 и Ссылка 3


это тривиально делать вручную, Если вам не нужно оставаться совместимым с существующими сериализованными экземплярами. Просто скопируйте эту строку в класс:

private static final long serialVersionUID = 1L;

обратите внимание, что нет абсолютно никаких требований к serialVersionUID должен быть уникальным для всех классов.


чтобы отключить эти предупреждения в Netbeans:

  1. Открыть: Инструменты - > Параметры
  2. открыть: редактор -> вкладка подсказки
  3. Выберите Язык: Java
  4. снимите стандартные предупреждения Javac - > сериализация
  5. OK

Мне также пришлось очистить ~/.netbeans/6.8/var / cache и перезапустите Netbeans, чтобы удалить предупреждения из списка задач.


(для пользователей, где задать тот же вопрос сейчас)
Я использую nb7.4 и нашел этот плагин от nb6.5 в nb7.4
плагин
Я тестировал его в nb7.4 и работать хорошо. Для значения servial version id посмотрите на
serialVersionUID
если вы добавите его явно, вы можете внести все изменения в свой класс без изменения uid, пока ваш класс не будет сериализован и сохранен где-нибудь: если вы создадите класс A, сериализуйте его
потом магазин это на базе
end затем измените класс A, не делая более совместимым со старым классом A,
когда кто-то пытается загрузить сериализованный объект из последнего класса A в новый класс A, у него может возникнуть проблема.

когда вы изменяете класс A и делаете его несовместимым с последним классом A, вам нужно изменить uid, поэтому, если кто-то попытается загрузить его, он получит InvalidClassExceptions.