如何解决FindBugs中的FCBL_FIELD_COULD_BE_LOCAL问题?

问题描述:

在FindBugs的,我越来越喜欢FCBL_FIELD_COULD_BE_LOCAL这个代码的类名行的一个问题:如何解决FindBugs中的FCBL_FIELD_COULD_BE_LOCAL问题?

@Entity 
@Table(name = "DIAGNOSIS") 
@Immutable 
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY) 
public class RetrievableDiagnosis extends BaseDiagnosis 
{ 
    @Id 
    @Column(name = "DIAGNOSIS_ID") 
    private long diagnosisId; 

    @Column(name = "DIAG_NOTE") 
    private String diagnosisNote; 
} 

我怎样才能解决这个问题?

+0

描述是“类定义只用作本地的字段”,因为类中有很多局部变量 –

+0

你在哪里访问你的字段?在'BaseDiagnosis'类中?如果是这样,你可以在基类中提供那段代码吗? –

+0

感谢您的回复。它是一个hibernate实体。这些是独特的领域/属性,而不是来自BaseDiagnosis。代码片段不会给出任何错误,但会在jenkins findBugs中显示违规。它显示“类定义只用作当地人的字段”。由于所有的字段都是私有类型,并且不确定要添加什么来解决Findbugs违例(FCBL_FIELD_COULD_BE_LOCAL) –

为了解决这个问题,你需要使用你在你的班级的某个地方。 FindBugs告诉你的是,你的类中的字段永远不会被用作字段。

如何使用从数据库检索到的字段?也许你需要添加getters?现在,你的领域是没有用的(除非你不用反射来使用它们,这是不好的)。

+0

我同意。吸气者不在这里,而且根据我的要求,我不需要同班同学中的那些吸气者。感谢您的及时回复。 –