为什么实体类显示 pmd 警告“类被怀疑是 DataClass”

Roh*_*h V 2 java class pmd

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

@Entity
public class User {
     @Id
     @GeneratedValue
     private Long primaryKey;
     private String name;
     // some other fields, default constructor, All argument constructor, 
     // getters and setters
Run Code Online (Sandbox Code Playgroud)

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

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

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

Joa*_*uer 8

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

只要启用了数据类规则并且您的类未列入白名单,此问题就会继续弹出。

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

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

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