gpt4 book ai didi

java - Singleton Java 类可以有静态常量变量吗?声纳 Lint 错误

转载 作者:搜寻专家 更新时间:2023-11-01 01:20:08 25 4
gpt4 key购买 nike

在 Java 单例类中,我想创建一个如下代码所示的最终常量。

  1. private final int threshold = 3;//Sonal lint 的不合规代码示例
  2. private static final int THRESHOLD = 3;//Sonarlint 的合规代码

我的问题是,为什么单例类应该在 final int/string 常量中包含 static 关键字因为这个类只有一个实例?

最佳答案

这可能是 Sonar Lint 无法识别的警告。很难通过静态分析识别单例,因此他们只是选择忽略此警告并发出警告。

虽然理论上你是对的(只有一个实例,所以常量无论如何只会被声明一次),你最好不要让这段代码的 future 维护者感到困惑(并且需要配置 Sonar 来忽略这个警告), 并将其也定义为 static 。如果编译器实际内联它,您也可能会获得一分钟的内存消耗改进,据我所知,它只对 static final 成员起作用。

关于java - Singleton Java 类可以有静态常量变量吗?声纳 Lint 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53203902/

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