我想在代码库中注释掉对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("
无需进行棘手的代码解析。