- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
FindBugs 报告了我的代码中的错误做法, findbugs:SI_INSTANCE_BEFORE_FINALS_ASSIGNED .
The class's static initializer creates an instance of the class before all of the static final fields are assigned.
我的代码看起来像..
public class Foo {
public static final Foo DEFAULT = new Foo(Bar.A, "baz");
public enum Bar {
A, B
}
private final Bar bar;
private final String baz;
public Foo(Bar bar, String baz) {
this.bar = bar;
this.baz = baz;
}
}
我知道它将 new Foo
的使用标记为 Foo
中的静态变量是一种不好的做法,但并没有真正看到问题所在。
谁能解释为什么这是不好的做法,使用这种不好的做法可能会发生什么意外行为,并可能提出更好的做法作为替代方案?
最佳答案
您可以在构造函数中引用DEFAULT
,或者由构造函数直接或间接调用的方法。如果这样做,它的值将为 null
,这可能会对您最终分配给 DEFAULT
的实例的初始化产生不良后果。
您不会以这种方式引用它,所以目前这并不是真正的问题。但是,将来可能会更改该类以意外引用它。
在您的示例代码中,它看起来是一个实例化成本非常低的类。您可以简单地提供一个静态工厂方法 getDefault()
,以便在需要时创建一个新实例。如果它在现实中并不那么便宜,您可以采用某种形式的惰性初始化。
关于java - FindBugs:类内的静态实例初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37953588/
FindBugs 中有一个注释可以忽略一组错误, 例如: import edu.umd.cs.findbugs.annotations.SuppressWarnings; @SuppressWarni
当我使用 fingbugs-eclipse 插件或 findbugs-ant 插件时,需要设置一个置信选项。 但是根据 findbugs 文档,错误的等级为 1-20,并分为最可怕(等级 1-4)、可
我正在使用 FindBug,我想了解它为文档目的生成的 .XML 报告。 我得到的样本如下。 所以看起来类型RANGE_ARRAY_INDEX类别 CORRECTNESS有排名 7所以它是一个 sc
根据Ant任务,报告级别是低/中/高设置,将查找不同严重级别的错误。但是,我找不到任何内容可以解释哪些错误适用于这些不同的报告级别。 是否有地方可以提供此功能,即使这是我需要在源代码中查看的内容? 最
我计划逐步对我的项目运行检查样式。目前我的 CI 服务器正在进行增量构建,即只对修改后的文件和依赖项运行单元测试。但对于检查样式、PMD、Findbugs,我们在整个项目上运行,而不是仅在修改后的文件
我希望用 Findbugs 检测下面的空 catch block 有没有默认的 Findbugs 检查器? 我找不到...... } catch (RemoteException re) {
我正在使用 Sonar (通过和),当我使用“Sonar 方式”配置文件时,它运行得很好。 我想运行“Sonar way with Findbugz”配置文件,但出现异常并且不起作用。 是什么让这变得
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 已关闭 9 年前。 Improve
Maven 版本:3.3.3。 Findbugs插件版本:3.0.1 我正在使用 findbugs-maven-plugin 并且我需要运行 findbugssrc 和测试类上的插件。目前仅适用于源类
我正在将 findbugs 集成到一个混合的 java/kotlin 项目中。但是,由于 findbugs 作用于生成的 jar,它会查找与通过 kotlin 文件生成的类相关的错误。 有什么办法可以
你能让我知道 Findbugs 可以检测到 Java 中的捕获 RuntimeException 吗? 有效的 java 建议我们不应该捕获 RuntimeException。 所以我想知道 Find
我正在使用 FindBugs(版本 1.3.9)Eclipse 插件。我运行 findbugs 并将结果保存在 XML 文件中。我需要生成 XML 报告的 HTML 报告。 我们有现有的工具吗? 我希
-我在可用的插件中找不到要安装的 findbugs 如果我尝试 source-->检查并选择从那里安装 findbugs netbeans 说无法下载 findbugs 有没有办法激活它? 最佳答案
我有用于 eclipse 的 findbugs 插件,当在我的项目上运行时,它会在 Bugs 资源管理器中显示按错误类型分类的结果。 我需要能够做两件事: 将所有这些导出到excel表格 找出一组文件
我们为 FindBugs 创建了一个自定义插件(为清楚起见:这是一个 findbugs 插件,而不是 Sonar 插件),我们想用我们的自定义 findbugs 插件扩展 FindBugs Sonar
在几个月来第一次从事我的一个项目之后,我想运行 Sonar 来检查我是否引入了任何新的违规行为。正如我之前做过很多次一样,我首先下载了最新的稳定版 Sonar (sonarqube-4.5.2) 然后
当我浏览 intellij 插件上的 repos 时,我看到 FindBugs - IDEA 插件 QAPlug - Findbugs 插件 现在我安装了 QPlug,因为它与 PMD、Checkst
我的以下代码低于 Findbugs 错误。请让我知道需要为此做什么? 代码: public void myMethod(Key key, long timestampMillis) {
我从 FindBugs 收到以下错误, 在 MyClass.print(String): String.getBytes() 中发现对默认编码的依赖 方法 protected void print (
使用 findbugs 扫描以下代码后,它会报告 Dodgy code:NP: Load of known null value in new ....(at line where new Excep
我是一名优秀的程序员,十分优秀!