声纳要求让这个领域最终

时间:2016-10-14 13:22:36

标签: java sonarqube

我的程序中有以下代码,并且在与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 ;
}

2 个答案:

答案 0 :(得分:2)

Sonar抱怨你不应该使用可变状态,但是你不想遵循这个建议。您的选择是:忽略警告或遵循建议,即使您不想这样做。遵循建议并不意味着在那里打“最终”(因为在这种情况下没有意义),但重新设计你的代码会更好。

你可以ignore using suppresswarnings already explained。如果你想遵循这些建议,你需要以不同的方式重新设计你的代码。

除了您发布的内容之外,我们不知道您的代码,因此我们无法确定您应该如何重新设计它。但是,建议这样做。 至于原因,你可以在这里阅读:Why is Global State so Evil?

答案 1 :(得分:0)

如果您假设所有上下文中的唯一变量

  

public static final volatile SingularAttribute processStatus;

  • 这样你就需要var。
  • 的实例
  • 或者添加注释
@SuppressWarnings(value = { "CWE-580" })
  • 我正在使用。
  • 如果有人有更优雅的其他解决方案,请发送给我们。