gpt4 book ai didi

java - @Target(ElementType.ANNOTATION_TYPE) 如何工作

转载 作者:IT老高 更新时间:2023-10-28 20:29:20 28 4
gpt4 key购买 nike

Java 注释用 @Target 注释标记,以声明可由该注释修饰的可能连接点。 ElementType枚举的TYPEFIELDMETHOD等值清晰易懂。

问题

为什么要使用 @Target(ANNOTATION_TYPE) 值?带注释的注释有什么用?他们的贡献是什么?给我一个解释它如何工作的想法以及我为什么要使用它。一些已经存在且众所周知的使用示例也会很棒。

最佳答案

您可以使用带注释的注解来创建元注解,例如考虑 Spring 中 @Transactional 的这种用法:

/**
* Shortcut and more descriptive "alias" for {@code @Transactional(propagation = Propagation.MANDATORY)}.
*/
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Transactional(propagation = Propagation.MANDATORY)
public @interface RequiresExistingTransaction {
}

当你启用 Spring 来处理 @Transactional 注解时,它将寻找携带 @Transactional 任何元数据的类和方法它的注释(使用 @Transactional 注释的注释)。

无论如何,这只是一个如何使用带注释的注释的具体示例。我想这主要是像 Spring 这样的框架,使用它们是有意义的。

关于java - @Target(ElementType.ANNOTATION_TYPE) 如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15101139/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com