0

我正在寻找一种方法来分析 Java 代码并以编程方式修改它们,

例如,代码可能是这样的:

@FindBy(id = "login")    
WebElement btnLogin;

@FindBy(xpath = "//div/a")    
List<WebElement> aNodes;

我希望检查@FindBy注释的每个字段,并将注释@FindBy更改为@Synchronized。

那是:

@Synchronized
WebElement btnLogin;

@Synchronized
List<WebElement> aNodes;

与我发现的类似问题不同(他们使用 javassist 或 ASM 修改字节码),这些注释将在运行时被删除,所以我只能在源代码级别而不是在字节码级别。

到目前为止,我找到了 qdox,但它似乎只能分析代码而不能修改它。

我试图自己编写正则表达式来解决它,但这似乎是一个太大的项目。

对此有什么建议吗?

4

1 回答 1

0

这个的正则表达式应该很简单

匹配任何以开头的行

"^@FindBy"

或者,如果您担心奇怪(但有效)的语法(@FindBy(blah) protected void ..)

"^@FindBy(.*)"

也就是说,您也可以使用您最喜欢的 IDE 手动进行搜索和替换(Eclipse、IntelliJ 甚至 emacs 应该能够在所有文件中执行此操作),因为您似乎是静态执行此操作

于 2013-01-16T03:21:28.750 回答