【问题标题】:Remove if statement and curly braces but keep contents删除 if 语句和花括号,但保留内容
【发布时间】:2020-03-17 15:16:51
【问题描述】:

我有一个带有isDebugEnabled() 方法的记录器类。这被重复了超过 16,000 次,因此我们现在检查它是否在方法本身中启用,而不是在项目中的任何地方启用。

        if ( logger.isDebugEnabled() ) 
    {
        logger.logMethodEntryMessage();
    }

我想删除 if 语句,但在项目中的任何地方保留 logger.logMethodEntryMessage();。是否可以使用 Notepad++ 和 regex 或 eclipse 和 regex 来完成此操作?

感谢您的帮助

【问题讨论】:

  • 到处都是一样的if语句?
  • @ctwheels 差不多,有些调用不同的记录器方法,但它们都是相同的格式。
  • @DeaneKane 您向我们提供更多细节很重要。因为根据这里的信息this(?:if\s*\(\s*logger.isDebugEnabled\(\)\s*\)\s*{\s*|\G(?!\A))(?:(logger.logMethodEntryMessage\(\)\s*;)|\s*}) 有效,但如果是不同的方法,它不会。
  • @tobias_k 不,我不是在寻找 Java 代码来进行替换。只是我要替换的用 Java 编写的代码。
  • @ctwheels 谢谢,如果我用另一种方法替换该方法,它应该可以工作吗?我只有大约 3 种不同的方法。 logMethodExitMessage(); 我的 logger.debug( ("fileType: " + fileType) ); 方法虽然接受各种参数。

标签: java regex


【解决方案1】:

我相信简单的搜索和替换应该可以工作,Intellij 中的 Ctrl+R 或 Eclipse 中的 Ctrl+F。这是一个类似的question

【讨论】:

  • 这不简单,因为他想去掉if语句和花括号,只留下“logger.logMethodEntryMessage();”
  • 为什么不用logger.logMethodEntryMessage() 替换整个东西呢?对我来说听起来更简单。
  • 从来没想过@w1sh
猜你喜欢
  • 1970-01-01
  • 2017-06-14
  • 1970-01-01
  • 2017-07-06
  • 1970-01-01
  • 2023-01-16
  • 2012-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多