java - AspectJ:如何替换现有注释

标签 java junit aop aspectj

使用 AspectJ,如何替换现有注释?

我有以下代码

declare @method : @Test * *(..) : @Test(timeout=10);

在每个测试方法上都会产生以下错误:

... already has an annotation of type org.junit.Test, cannot add a second
instance [Xlint:elementAlreadyAnnotated]

当然,错误是有道理的,但是语法是什么,“从所有具有它的方法中删除 @Test 注释。然后将其替换为 @Test(timeout= 10)

最佳答案

我是 AspectJ 项目负责人。在 https://bugs.eclipse.org/bugs/show_bug.cgi?id=313026 下我们正在研究如何使用声明注释:

  • 增加现有注释(为已经存在的注释添加值)
  • 替换他们
  • 定义优先级(你的声明是否应该替换那里的内容?)

我们也在寻找一种删除注释的形式:

声明@remove_from_method: int mymethod(): @ToBeRemoved;

但是你还不能这样做......

关于java - AspectJ:如何替换现有注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4106187/

相关文章:

java - JUnit 如何测试 "printlist"?

java - 将 Java 项目迁移到 AspectJ (Eclipse AJDT)

java - 在 AOP 注释切入点上获取注释

java - 如何从 LinkedList<Integer> array[] 中删除元素

java - 返回与原始字符串几乎相同的子字符串

java - 在 Eclipse 中并行运行 JUnit 参数化测试

weblogic - AspectJ 与 weblogic

java - TemporalAdjuster - 从调整后的日期获取下一个日期

java - 如何取消对 jar 的签名?

java - 在 RunWith 注释 : does not find tests (java. lang.Exception 中使用 SerenityParameterizedRunner 进行 junit 测试:未找到匹配的方法)