Lombok 注释的优先级是什么?

What is the precedence of Lombok annotations?

我知道 @EqualsAndHashCode 优先于 @Data,但其他注释呢?有什么简单的规则可以用来判断吗?

我只知道一个规则:更具体的注释优先。由于 @Data 不允许配置有关 @EqualsAndHashCode 计算细节的任何内容,后者显然更具体。 @Data@Getter 和其他人的情况类似。

另一种情况是class级注释与字段级注释,前者可以被后者覆盖。

请注意,反过来做完全没有意义。

有一些边界情况,例如 @Builder@Data,其中不清楚应该生成什么构造函数(IIRC 他们分别需要 AllArgsConstructorNoArgsContructor) .明确指定构造函数有帮助。