SonarLint оповещает о проблеме java: S1206, но реализован hashCode и равно - PullRequest
1 голос
/ 06 марта 2020

У меня есть небольшой Java проект на Eclipse, который мне нравится проверять запах кода с помощью SonarLint, но сегодня у меня появилась странная проблема java:S1206, в которой говорится "equals(Object obj)" and "hashCode()" should be overridden in pairs. Эта проблема сообщается для объекта модели длительного времени, который корректно переопределяет методы equals и hashCode.

Java class overriding both

Я уже пробовал перезапустите SonarLint несколько раз, но результаты будут такими же. Последнее, что я сделал, это обновил некоторые версии зависимостей и импортировал.

Я использую Eclipse 2019-12 (4.14.0), идентификатор сборки: 20191212-1212 и SonarLint для Eclipse версии 5.0.0.15138. Eclipse работает с использованием JDK 1.8.0_231.

Код проекта можно найти в моем репозитории ISS-Tracker GitHub .

1 Ответ

0 голосов
/ 07 марта 2020

Похоже, проблема связана с версией Java виртуальной машины (JVM), которую я использовал для запуска Eclipse. Я изменил файл eclipse.ini для запуска Eclipse с использованием JVM 11, и SonarLint не сообщал о проблемах. Чтобы быть уверенным в этом, я удалил конфигурацию, перезапустил Eclipse, повторно выполнил отчет SonarLint и снова появилась проблема java: S1206.

Для тех, кто сталкивается с той же проблемой (или, возможно, схожей) ):

  1. Загрузка виртуальной машины Java 11;

  2. Установите JVM на свой компьютер и аннотируйте (скопируйте) каталог установки ( например, /opt/openjdk/jdk-11.0.2);

  3. Открыть файл $ECLIPSE_HOME/eclipse.ini в текстовом редакторе;

  4. Добавьте следующие строки, заменив <JAVA_HOME> на ваш Аннотированный каталог установки;

-vm
<JAVA_HOME>/bin

eclipse.ini файл должен выглядеть так:

eclipse.ini file after JVM configuration lines have been added

Перезапустите Eclipse.

Снова запустите отчет SonarLint, щелкнув правой кнопкой мыши папку проекта, меню SonarLint, пункт Analyze.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...