SonarQube / SonarLint имеет специальные проблемы, касающиеся повторного использования одних и тех же строк HC, однако это делается в рамках одного файла класса.
Это означает, что если вы используете одну и ту же строку HC только один или два раза в каждом файле класса, но у вас есть 10 таких файлов, то SQ / SL не обнаружит эту проблему, и вы не будете знать о строке HC / Magic выпуск.
Я предлагаю вам попытаться использовать возможности поиска в вашей среде IDE с некоторой автоматизацией - создайте простой текстовый список предполагаемых магических строк и используйте его в качестве входных данных для инструмента поиска в вашей среде IDE, чтобы он охватывал всю вашу работу. пробел и отметьте / суммируйте все магические строки в вашем проекте.
В SQ / SL есть поддержка определения магических чисел - правило Magic numbers should not be used
. Те же проблемы обнаружения, как указано выше для магических строк.
Примечание. Решение, которое я обычно использую для магических строк / строк HC, - это служебный класс Constants с public static final
переменными. В целях расширения использования я разрешаю, чтобы строки HC дополнительно содержали теги, которые можно анализировать с помощью динамических значений («My [tag] String» - [tag = nice] -> «My nice String»).