我想知道如何向批注添加参数,然后使用该参数帮助编写批注。
举个简单的例子,假设我想定义@Defect(<Ticket-ID>)。在其他内容中,该注释将添加@Tag(<Ticket-Id>)。
我能这么做吗?如果是这样,代码会是什么样子的?
发布于 2020-02-17 20:42:25
我认为您不能将@Defect()映射到@Tag(),也看不到它的意义。您只需更改标记名称即可。您可以做的是,创建一个接口来映射@Tag("Defect"),然后将一个值作为参数添加到其中:
@Target({TYPE, METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Test
@Tag("Defect")
@interface Defect {
int value();
}然后你可以像这样使用它:
@Defect("JiraIssue-1234");您还可以获取作为参数传递的值,如下所示:
AnnotationSupport.findAnnotation(_extensionContext.getElement(), Defect.class).get().value()https://stackoverflow.com/questions/60096716
复制相似问题