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 に答える