我正在寻找一种方法来分析Java代码和程序进行修改,编程修改注释Java源代码
例如,代码可能是这样的:
@FindBy(id = "login")
WebElement btnLogin;
@FindBy(xpath = "//div/a")
List<WebElement> aNodes;
和我d希望检查每个由@FindBy注释的字段,并将注释@FindBy更改为@Synchronized。
那就是:
@Synchronized
WebElement btnLogin;
@Synchronized
List<WebElement> aNodes;
不像我发现类似的问题(他们使用了Javassist或ASM修改字节码),这些注释将在运行时被删除,所以我只能在源代码级做到这一点但不在字节码级别。
到目前为止,我发现qdox,但似乎它只能分析代码,但不能修改它。
我试图自己编写正则表达式来解决它,但它似乎是一个太大的项目。
对此的任何建议?
如果它真的只是你说的话,如果@Findby序列不存在于注释或字符串中,正则表达式可以做得很好。转换是否真的是上下文无关的? –
也许我需要关心的唯一环境是@FindBy注释必须放在WebElement或它们的集合之前,例如列表 –
abuuu
为什么不只是使用搜索和替换您选择的编辑器? – eis