首页 > 解决方案 > 为什么实体类显示 pmd 警告“类被怀疑是数据类”

问题描述

我有一个类用户,如下所示

@Entity
public class User {
     @Id
     @GeneratedValue
     private Long primaryKey;
     private String name;
     // some other fields, default constructor, All argument constructor, 
     // getters and setters

当我使用 PMD 代码分析器进行分析时,它的显示the class User suspected to be a DataClass.

我尝试UserDataClass对类使用命名,但它仍然显示此警告。

我们可以遵循什么命名约定来消除此警告?

标签: javaclasspmd

解决方案


没有命名约定可以让 PMD 不抱怨这一点。

只要启用了数据类规则,并且你的类没有被列入白名单,这个问题就会继续弹出。

这个想法是完全避免使用数据类,而是让类提供一些行为(除了保持一些状态)。这个 SE question讨论了如何做到这一点。

该规则作为一个整体并没有被普遍接受为有用(有多个删除规则的请求),因此如果它不符合您项目的设计理念,您可能只想禁用该规则。

记住:像 PMD 这样的工具不应该被盲目地用作某些绝对真理的来源。相反,它们应该被配置为紧密匹配所需的设计理念,然后用于检测与该理念的意外偏差。


推荐阅读