【问题标题】:Can we declare member variable of JPA static metamodel class as a final?我们可以将 JPA 静态元模型类的成员变量声明为 final 吗?
【发布时间】:2016-12-22 21:01:54
【问题描述】:

我有一个 JPA 静态元模型类,如下 -

@StaticMetamodel(Test.class)
public class Test_{
    public static volatile SingularAttribute<Test, String> id;
    public static volatile SingularAttribute<Test, String> name;
    public static volatile SingularAttribute<Test, String> description;
    public static volatile ListAttribute<Test, Property> property;
}

我正在使用sonarqube 来提高我的代码质量,它建议我必须将上述成员变量的 public static id 更改为 field final

任何人都可以建议我应该将这些变量更改为最终变量吗?

【问题讨论】:

  • 您应该配置 sonarqube 以忽略自动生成的代码。

标签: java jpa sonarqube


【解决方案1】:

JPA 静态元模型 ("_") 类是由您的 JPA 提供者生成的,而不是由您生成的。它们完全遵循 JPA 规范所说的内容(并且那里没有“最终”)。不包括“final”是很有意义的,因为这些变量需要初始化,并且不会被包含的代码初始化。

【讨论】: