我的程序中有以下代码,并且在与Maven集成后运行SonarQube 5进行代码质量检查。 我正面临这个错误
制作这个" public static processStatus"现场决赛。
制作这个"公共静态processStatusId"最后的场地
但我不想把它作为最终决定。还有其他解决方案吗?
public abstract class ProcessStatusListPO_ {
private ProcessStatusListPO_() {
}
public static volatile SingularAttribute<ProcessStatusListPO, String> processStatus ;
public static volatile SingularAttribute<ProcessStatusListPO, Long> processStatusId ;
}
答案 0 :(得分:2)
Sonar抱怨你不应该使用可变状态,但是你不想遵循这个建议。您的选择是:忽略警告或遵循建议,即使您不想这样做。遵循建议并不意味着在那里打“最终”(因为在这种情况下没有意义),但重新设计你的代码会更好。
你可以ignore using suppresswarnings already explained。如果你想遵循这些建议,你需要以不同的方式重新设计你的代码。
除了您发布的内容之外,我们不知道您的代码,因此我们无法确定您应该如何重新设计它。但是,建议这样做。 至于原因,你可以在这里阅读:Why is Global State so Evil?
答案 1 :(得分:0)
如果您假设所有上下文中的唯一变量
public static final volatile SingularAttribute processStatus;
@SuppressWarnings(value = { "CWE-580" })