是否可以使用 Java 中的一组注释创建自定义注释?

Is it possible to create a custom annotation with a group of annotations in Java?

我在我的系统中使用了 lombok 和 JPA。所以对于实体 classes,它们看起来都像:

@Getter
@Setter
@Entity
@NoArgsConstructor
@AllArgsConstructor
public class XxxEntity {
    ...
}

所以我的问题是我可以创建一个自定义注释来对所有这些注释进行分组吗?

所以它可能看起来像:

@CustomAnnotation
public class XxxEntity {
    ...
}

当我使用@CustomAnnotation 时,它会将上述所有注释应用到 class。

这可能吗?

谢谢。

不,这不可能。您可以使用新注释将注释集中在一起,但注释处理器不会理解它。来自 Spring 的 @Caching 注释只是注释处理器 已知的 注释的一个示例。如果您通过复制 @Caching 创建自己的注释,我敢打赌您会发现它不起作用。

理论上,它可以作为注释处理器工作,可以读取任何注释并查看内部。但是,完全不清楚应该如何处理未知注释。把其他注解放在里面没有规范的意思

特别是,这对龙目岛不起作用。有几个问题要求这样做,例如 here,但它非常复杂。

最终的解决方案是注释预处理器理解复合注释并在普通注释处理器之前用它们的成分替换它们 运行。但是没有这样的事情,据我所知也没有计划。