我想在代码库中注释掉对API(在我的情况下为java.util.Logging)的所有调用。是否有一个好的图书馆可以轻松完成此任务?
我尝试了Eclipse ASTParser,但这与Eclipse有关。我现在正在为PMD的解析器苦苦挣扎。我还没有看过,但是积宝能做到吗?还有其他建议吗?

最佳答案

如果要对此进行注释:

Log.doLog("Here is a" /* With a block comment to make it hard */
    + " multiline log statement"
    ); doSomethingEssential();

那么您将需要花费很多时间,因为您需要对代码进行一定程度的解析,才能知道在何处放置注释。即您希望能够做到这一点:
// Log.doLog("Here is a" /* With a block comment to make it hard */
//     + " multiline log statement"
//     ); // Line break inserted here
doSomethingEssential();

取而代之的是微不足道的:
if (false) Log.doLog("Here is a" /* With a block comment to make it hard */
    + " multiline log statement"
    );

“if false”部分最终会被编译器优化,并且Log语句不会将其添加到最终的.class文件中。

这样,您只需在构建脚本中执行搜索/替换步骤即可替换所有出现的
"Log.doLog("

与任何
"if (false) Log.doLog(" or
"if (true) Log.doLog("

无需进行棘手的代码解析。

09-13 12:46