gpt4 book ai didi

java - 查找硬编码(魔术)数字和字符串

转载 作者:行者123 更新时间:2023-12-03 14:01:01 34 4
gpt4 key购买 nike

有没有办法在 Java 中找到所有硬编码的数字和字符串?我的意思是尚未放入专用变量的值。

例如:

while (i < 6) {
System.out.println("6 is a number"); // Hard Coded, "Magic" String
}

我收到了有关 SonarQube 的建议,但我不知道如何使用它。

最佳答案

SonarJava 是 SonarQube 的 Java 插件,它有一条明确针对魔数(Magic Number)的规则。请在此处查看其说明:S109 - Magic numbers should not be used .

还有一条规则要求您定义常量而不是多次使用同一个字符串,但仅当在同一文件中使用时(如其他答案中已经提到的那样)(S1192 - String literals should not be duplicated)。因此,它不会标记在任何方法主体中仅使用一次的任何字符串常量,也不会识别分布在多个文件中的重复常量。

如果您迫切需要跟踪项目中所有字符串常量的使用情况,最好的方法是编写您自己的针对它们的规则,作为自定义插件的一部分(参见Writing Custom Java Rules ).

现在,如果您想从这些规则中获益,您唯一需要做的就是设置项目分析,以便对您的代码执行 SonarQube 分析,并确保您需要的所有规则都是已启用,因为它们并非默认质量配置文件的所有部分(有关设置的详细信息,请参阅 SonarQubeSonarCloud 网站)。

关于java - 查找硬编码(魔术)数字和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50110661/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com