Может ли NetBeans генерировать автоматический идентификатор последовательной версии для класса Java?
Я хотел бы удалить некоторые предупреждения для некоторых классов, создав автоматический идентификатор последовательной версии. В Eclipse это тривиально - IDE может автоматически генерировать его и добавлять в класс. Однако, я не вижу этой функции в NetBeans. Он доступен? Если да, то где он? Если нет, есть ли плагин, который может его включить?
5 ответов
на самом деле моим решением этой "проблемы" было отключить это предупреждение в моей конфигурации проекта (я использую Eclipse, но я думаю, что для NetBeans это то же самое), что и IMHO, это неправильное предупреждение:, не имеющего serialVersion-самый безопасный выбор, потому что JVM вычисляет тот, который уникален при запуске (что-то вроде хэша класса), добавляя его явно, а затем обременяет вы позаботиться, чтобы обновить его, если и только если вы сделали несовместимые изменения в коде.
Итак, если вы не заботитесь об этом, лучше избегать этого значения (таким образом, оно совместимо только с версией, которая совместима точно, но с некоторыми ложными срабатываниями: он думает, что это несовместимо, но на самом деле это было бы) вместо того, чтобы ставить там фиксированное значение, которое вы (вероятно, в моем случае) забудете обновить, когда это необходимо, что приводит к фактическим ошибкам достоверности (ложные отрицания: он думает, что он совместим, но это не.)
похоже, что из коробки NetBeans не поддерживает эту функцию, но Плагины делают.
пожалуйста, посмотрите на
это тривиально делать вручную, Если вам не нужно оставаться совместимым с существующими сериализованными экземплярами. Просто скопируйте эту строку в класс:
private static final long serialVersionUID = 1L;
обратите внимание, что нет абсолютно никаких требований к serialVersionUID
должен быть уникальным для всех классов.
чтобы отключить эти предупреждения в Netbeans:
- Открыть: Инструменты - > Параметры
- открыть: редактор -> вкладка подсказки
- Выберите Язык: Java
- снимите стандартные предупреждения Javac - > сериализация
- 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.