使用 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/